|
private async void Save(object parameter)
{
if (parameter != null)
{
var grid = parameter as Grid;
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(grid);
var pixels = await renderTargetBitmap.GetPixelsAsync();
var fileSavePicker = new FileSavePicker();
fileSavePicker.FileTypeChoices.Add("BMP", new List<string>() { ".bmp" });
fileSavePicker.FileTypeChoices.Add("GIF", new List<string>() { ".gif" });
fileSavePicker.FileTypeChoices.Add("PNG", new List<string>() { ".png" });
fileSavePicker.FileTypeChoices.Add("JPG", new List<string>() { ".jpg" });
fileSavePicker.FileTypeChoices.Add("JPG-XR", new List<string>() { ".jxr" });
fileSavePicker.FileTypeChoices.Add("TIFF", new List<string>() { ".tiff" });
fileSavePicker.SuggestedFileName = SfChartResourceWrapper.FileName;
var file = await fileSavePicker.PickSaveFileAsync();
if (file != null)
{
Guid encoderId = GetBitmapEncoderId(file.FileType);
using (var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(encoderId, stream);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)renderTargetBitmap.PixelWidth,
(uint)renderTargetBitmap.PixelHeight, imageResolution, imageResolution, pixels.ToArray());
await encoder.FlushAsync();
}
}
}
} |