2016-08-18 75 views
2

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

我已经设置了我的WebView接受一个HTML字符串,这工作得很好:

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

我注意到MSDN这虽然:

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

现在我完全困惑。

可有人请解释如何,我可以:

  • 创建WebViewBrush给我有一个的WebView
  • 如何再打印此WebViewBrush

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

+0

ON-THREAD直接印刷如何?它应该得到支持。 –

回答

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"/> 

然后web视图的静态内容将被渲染到Rechtangle就像一个图片。而您可以打印Rechtangle

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

+0

您好,非常感谢您的回复。我终于想出了如何让刷子工作,我还没有让印刷工作,虽然(我已经尝试了你链接到的打印样本 - 但我遇到了问题,打印'刷新的'FrameworkElement'因为样本似乎打印XAML'Page'对象)。我在http://stackoverflow.com/questions/39033318/how-to-save-webviewbrush-as-image-uwp-universal上提出了一个关于打印问题的信息 - 希望如果你有机会,你可能能够一些启发?谢谢 – b85411