我知道如何在Silverlight中执行此操作,但我找不到有关如何在WinRT中执行此操作的足够信息。
我读到WinRT XAML Toolkit可能会有所帮助,但确切的组件WinRT XAML Toolkit - Composition
似乎与Windows Universal App不兼容。我目前正在开发Windows Phone 8.1部分。
WinRT XAML Toolkit for Windows Phone 8.1似乎也不像WriteableBitmap.Render
方法。
我还读到WriteableBitmapEx中的blit
方法可能有所帮助,但我找不到任何关于如何实现此目的的示例。
任何deas?
答案 0 :(得分:2)
您可以使用RenderTargetBitmap从包含在VisualTree中的UIElement创建图像。
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(uielement);
var pixels = await renderTargetBitmap.GetPixelsAsync();
var logicalDpi = DisplayInformation.GetForCurrentView().LogicalDpi;
var encoder = await BitmapEncoder.CreateAsync(encoderId, stream);
encoder.SetPixelData(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Ignore,
(uint)renderTargetBitmap.PixelWidth,
(uint)renderTargetBitmap.PixelHeight,
logicalDpi,
logicalDpi,
pixels.ToArray());
await encoder.FlushAsync();
return renderTargetBitmap;
答案 1 :(得分:1)
如果你想显示它更简单,为了节省你必须做上面的答案:
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(RenderedGrid);
RenderedImage.Source = renderTargetBitmap;