Example #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);
                }
            }
        }
Example #2
0
 public ScreenshotMessage(ScreenshotCallback callback = null, object sender = null, object target = null)
     : base(sender, target)
 {
     Callback = callback;
 }
Example #3
0
 public ScreenshotMessage(ScreenshotCallback callback = null, object sender = null, object target = null) : base(sender, target)
 {
     Callback = callback;
 }