2016-08-18 61 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