UWP - 打印webview

时间:2016-08-18 07:47:58

标签: c# webview uwp

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

我已将我的WebView设置为接受HTML字符串,这样可以正常工作:

    <WebView
        ext:HtmlExtension.HtmlString="{Binding HtmlString}"
        x:Name="MyWebView"
        Grid.Row="1"
        Grid.Column="0"
    />

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

  

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

现在我完全糊涂了。

有人可以解释我的意思:

  • 如果我有一个WebView
  • ,请创建一个WebViewBrush
  • 如何打印此WebViewBrush

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:3)

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

WebViewBrush wvBrush = new WebViewBrush();
wvBrush.SetSource(myWebView);
wvBrush.Redraw();
myRect.Fill = wvBrush;

XAML:

<WebView Name="myWebView" Source="http://www.google.com" Width="1024" Height="500" LoadCompleted="myWebView_LoadCompleted"/>
<Rectangle Name="myRect" Width="1024" Height="500"/>

然后,webview的静态内容将像图片一样呈现在Rechtangle中。您可以打印Rechtangle

对于打印,我建议您阅读Print from your app。还有一个官方样本供您参考:UWP Print Sample