0

我知道如何在 Silverlight 中执行此操作,但我找不到有关如何在 WinRT 中执行此操作的足够信息。

我读到WinRT XAML Toolkit可能会有所帮助,但确切的组件WinRT XAML Toolkit - Composition似乎与 Windows 通用应用程序不兼容。我目前正在开发 Windows Phone 8.1 部分。

WinRT XAML Toolkit for Windows Phone 8.1似乎也没有类似的WriteableBitmap.Render方法。

我还读到WriteableBitmapExblit中的方法可能会有所帮助,但我找不到任何有关如何实现此目的的示例。

有死吗?

4

2 回答 2

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;
于 2015-07-14T18:33:35.220 回答
1

如果要显示它,使用起来更简单,为了保存你必须按照上面的答案做:

RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(RenderedGrid);
RenderedImage.Source = renderTargetBitmap;
于 2015-07-14T19:52:21.070 回答