Exemplo n.º 1
0
        private async Task DoRender(ScreenshotCallback callback)
        {
            var renderTargetBitmap = new RenderTargetBitmap();
            await renderTargetBitmap.RenderAsync(AssociatedObject);

            var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();

            var storageFile = await KnownFolders.SavedPictures.CreateFileAsync(string.Concat(Prefix, ".png"),
                                                                               CreationCollisionOption.GenerateUniqueName);

            using (var stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
            {
                var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);

                encoder.SetPixelData(
                    BitmapPixelFormat.Bgra8,
                    BitmapAlphaMode.Ignore,
                    (uint)renderTargetBitmap.PixelWidth,
                    (uint)renderTargetBitmap.PixelHeight, 96d, 96d,
                    pixelBuffer.ToArray());

                await encoder.FlushAsync();

                if (callback != null)
                {
                    callback(storageFile);
                }
            }
        }
Exemplo n.º 2
0
 public ScreenshotMessage(ScreenshotCallback callback = null, object sender = null, object target = null)
     : base(sender, target)
 {
     Callback = callback;
 }
Exemplo n.º 3
0
 public ScreenshotMessage(ScreenshotCallback callback = null, object sender = null, object target = null) : base(sender, target)
 {
     Callback = callback;
 }