UWP - print webview

本文关键字:webview print UWP | 更新日期: 2023-09-27 18:02:48

我想在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填充来打印元素。

现在我完全糊涂了。

谁能解释一下我怎么能:

  • 创建一个WebViewBrush给我一个WebView
  • 如何打印WebViewBrush

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

UWP - print webview

您可以使用以下代码来创建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代替。

对于打印,我建议您从您的应用程序中阅读打印。并且还有一个官方示例供您参考:UWP打印示例。