BoldSignA modern eSignature application with affordable pricing. Sign up today for unlimited document usage!
For those who needs to save Chart as an Image in an Universal App, the snippet below works, for example on a button click :private async void SaveImage(){//Rendu du composant Xaml, ici le graphique 'Syncfusion.Chart', sous forme d'image en mémoire.RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();await renderTargetBitmap.RenderAsync(doughnutMadelin, (int)myDoughnutActualWidth, (int)myDoughnut.ActualHeight);var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();//var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;var localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;var saveFile = await localFolder.CreateFileAsync("Chart.png", Windows.Storage.CreationCollisionOption.OpenIfExists);// Encodage de l'image en mémoire dans le fichier désigné sur le disqueusing (var fileStream = await saveFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite)){var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream);encoder.SetPixelData(BitmapPixelFormat.Bgra8,BitmapAlphaMode.Ignore,(uint)renderTargetBitmap.PixelWidth,(uint)renderTargetBitmap.PixelHeight,DisplayInformation.GetForCurrentView().LogicalDpi,DisplayInformation.GetForCurrentView().LogicalDpi,pixelBuffer.ToArray());await encoder.FlushAsync();}}
Hi Tod,
Thanks for using Syncfusion products.
We can achieve your requirement in loaded event by using Dispatcher as per the following code example.
Code Snippet[ C#]:
async void Performance_Loaded(object sender, RoutedEventArgs e)
{
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
{
SaveImage();
}));
}
We have prepared a sample based on this and you can find the sample under the following location:
Sample : http://www.syncfusion.com/downloads/support/forum/120283/ze/Export_SfChart699489350
Please let us know if you have any queries.
Regards,
Muneesh Kumar G.
[C#] async void Performance_Loaded(object sender, RoutedEventArgs e) { await Task.Delay(TimeSpan.FromSeconds(5)); await this.Dispatcher.RunAsync(CoreDispatcherPriority.Low, new DispatchedHandler(() => { SaveImage(); })); this.Loaded -= Performance_Loaded; } |