UWP-使用单个打印命令打印多个xaml工作表

UWP-使用单个打印命令打印多个xaml工作表,xaml,printing,uwp,Xaml,Printing,Uwp,是否有办法实现上述功能。在Windows社区工具包中有一个PrintHelper对象,您只需实例化PrintHelper对象并调用AddFrameworkElementToPrint方法即可添加要打印的多个XAML控件 此外,初始化对象时,需要传递一个XAML面板,该面板将用于承载可打印控件。它需要在您的视觉树中,但可以在不透明度为0时隐藏,如下所示。有关更多详细信息,请参阅此 MainPage.xaml: <StackPanel> <Canvas x:Name="Pr

是否有办法实现上述功能。

Windows社区工具包中有一个PrintHelper对象,您只需实例化PrintHelper对象并调用AddFrameworkElementToPrint方法即可添加要打印的多个XAML控件

此外,初始化对象时,需要传递一个XAML面板,该面板将用于承载可打印控件。它需要在您的视觉树中,但可以在不透明度为0时隐藏,如下所示。有关更多详细信息,请参阅此

MainPage.xaml:

<StackPanel>
    <Canvas x:Name="PrintCanvas" Opacity="0"/>
    <Button Click="Button_Click">click</Button>
</StackPanel>

谢谢如果我需要打印位于子网格中的页面的一部分,如何修改上述代码。文档中提到控件不能链接到可视化树。这意味着它们的父项必须为空。如果要打印子网格,可以在将其发送到打印之前将其断开连接,也可以从头创建一个新的子网格。如果你不想使用上面的方法,你需要手动实现打印过程而不使用上面的工具包,我创建了一个简单的,你可以检查一下。有关更多详细信息,您可以参考这篇关于打印的文章。@Faywang MSFT我使用了您从GigHub获得的示例,效果很好。但是,当应用程序具有显示网页的
WebView
控件时,我们怎么做才能做到这一点呢?@nam您可以使用打印WebView,创建一个矩形并将WebView的内容呈现到该矩形中,然后您可以打印该矩形。@Faywang MSFT我尝试了您的建议。它显示内容模糊的打印PDF。我已经发布了这个问题。
private async void Button_Click(object sender, RoutedEventArgs e)
{
    var printHelper = new PrintHelper(PrintCanvas);
    printHelper.AddFrameworkElementToPrint(new BlankPage1());
    printHelper.AddFrameworkElementToPrint(new BlankPage2());
    await printHelper.ShowPrintUIAsync("Title");
}