private async Task DoRender(ScreenshotToStreamCallback callback)
        {
            var renderTargetBitmap = new RenderTargetBitmap();
            await renderTargetBitmap.RenderAsync(AssociatedObject);

            var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();

            var stream = new InMemoryRandomAccessStream();

            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();

            stream.Seek(0);

            if (callback != null)
            {
                callback(stream);
            }
        }
 public ScreenshotToStreamMessage(object sender = null, object target = null, ScreenshotToStreamCallback callback = null)
     : base(sender, target)
 {
     Callback = callback;
 }
 public ScreenshotToStreamMessage(object sender = null, object target = null, ScreenshotToStreamCallback callback = null)
     : base(sender, target)
 {
     Callback = callback;
 }