RenderTargetBitmap未捕获Windows Phone 8.1 WinRT App中的WebView内容

时间:2016-02-07 14:13:58

标签: c# xaml windows-phone-8.1 winrt-xaml

我正在尝试使用以下代码截取Webview Control:

async Task<RenderTargetBitmap> CaptureToStreamAsync(FrameworkElement uielement, IRandomAccessStream stream, Guid encoderId)
  {
      try
      {
          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;

      }
      catch (Exception ex)
      {
          DisplayMessage(ex.Message);
      }

      return null;
  }

RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(RenderedGrid);
RenderedImage.Source = renderTargetBitmap;

但我得到了空白的图片。 它适用于所有其他控件。 请帮忙!

2 个答案:

答案 0 :(得分:1)

无法在Windows手机上捕获Webview的屏幕截图。请参阅以下链接:

Limitation of RenderTargetBitmap

答案 1 :(得分:1)

使用RenderTargetBitmap无法捕获,但您可以使用: CapturePreviewToStreamAsync

WebView.CapturePreviewToStreamAsync method

另请查看WebView的示例:

XAML WebView control sample