【问题标题】:UWP - print webviewUWP - 打印网页视图
【发布时间】:2016-12-25 01:17:02
【问题描述】:

我想在 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

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

【问题讨论】:

  • ON-THREAD 直接打印怎么样?应该支持。

标签: c# webview uwp


【解决方案1】:

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

【讨论】:

  • 您好,非常感谢您的回复。我终于想出了如何让画笔工作,但我还没有让打印工作(我已经尝试过你链接到的打印样本 - 但我在打印画笔所在的FrameworkElement时遇到了问题,因为样本似乎打印 XAML Page 对象)。我已经在stackoverflow.com/questions/39033318/… 上发布了关于打印问题的消息 - 希望如果你有机会,你可能会有所启发?谢谢
  • 嗨,我知道时间已经过去了,但是我经历了打印管理器和 UWP 打印助手的痛苦。 UWP 打印存在如此严重的限制,以至于我现在将所有报告直接从浏览器移动到打印,我确实使用 web 视图进行应用内查看。
猜你喜欢
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 2018-02-22
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
相关资源
最近更新 更多