UWP - 打印网页视图

b85*_*411 5 c# webview uwp

我想在 UWP 应用程序中打印 WebView 内容。

我已将 WebView 设置为接受 HTML 字符串,这很好用:

    <WebView
        ext:HtmlExtension.HtmlString="{Binding HtmlString}"
        x:Name="MyWebView"
        Grid.Row="1"
        Grid.Column="0"
    />
Run Code Online (Sandbox Code Playgroud)

我在MSDN上注意到了这一点:

在 UI 线程之外托管内容的 WebView 与需要手势从 WebView 控件向上传播到父控件的父控件(例如 FlipView、ScrollViewer 和其他相关控件)不兼容。这些控件将无法接收在线程外 WebView 中启动的手势。此外,不直接支持打印线程外 Web 内容——您应该打印带有 WebViewBrush 填充的元素。

现在我完全糊涂了。

有人可以解释我如何:

  • 鉴于我有一个 WebView,创建一个 WebViewBrush
  • 然后如何打印此 WebViewBrush

任何帮助是极大的赞赏。谢谢。

Elv*_*SFT 5

您可以使用以下代码创建WebViewBrush

WebViewBrush wvBrush = new WebViewBrush();
wvBrush.SetSource(myWebView);
wvBrush.Redraw();
myRect.Fill = wvBrush;
Run Code Online (Sandbox Code Playgroud)

XAML:

<WebView Name="myWebView" Source="http://www.google.com" Width="1024" Height="500" LoadCompleted="myWebView_LoadCompleted"/>
<Rectangle Name="myRect" Width="1024" Height="500"/>
Run Code Online (Sandbox Code Playgroud)

然后webview的静态内容会Rechtangle像图片一样渲染成。你可以打印出来Rechtangle

对于打印,我建议您阅读应用程序中的 Print。并且还有官方的样例供大家参考:UWP Print Sample