我想在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填充打印元素。
现在我完全糊涂了。
有人可以解释我的意思:
非常感谢任何帮助。感谢。
答案 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。