C# 在通用应用程序中打印

C# 在通用应用程序中打印,c#,printing,uwp,C#,Printing,Uwp,我正在开发一个Windows10通用应用程序,需要执行计算并根据结果生成打印输出。我不知道从哪里开始印刷。创建新文档的最简单方法是什么?在WPF中,我们有固定的文档和流程文档。我看不到通用应用程序格式中可用的那些文件。声明PrintManager和PrintDocument。PrintManager类型与支持其他Windows打印功能的类型一起位于Windows.Graphics.Printing命名空间中。PrintDocument类型位于Windows.UI.Xaml.Printing命名空

我正在开发一个Windows10通用应用程序,需要执行计算并根据结果生成打印输出。我不知道从哪里开始印刷。创建新文档的最简单方法是什么?在WPF中,我们有固定的文档和流程文档。我看不到通用应用程序格式中可用的那些文件。

声明PrintManager和PrintDocument。PrintManager类型与支持其他Windows打印功能的类型一起位于Windows.Graphics.Printing命名空间中。PrintDocument类型位于Windows.UI.Xaml.Printing命名空间中,以及支持准备要打印的Xaml内容的其他类型。通过在页面中添加以下using或Imports语句,可以更轻松地编写打印代码

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
PrintDocument类用于处理应用程序和PrintManager之间的大部分交互,但它公开了自己的几个回调。在注册期间,创建PrintManager和PrintDocument的实例,并为其打印事件注册处理程序。 在UWP打印样本中,通过RegisterFormPrinting方法执行注册

当用户转到支持的页面时,它会在OnNavigatedTo方法中启动注册

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   // Initalize common helper class and register for printing
   printHelper = new PrintHelper(this);
   printHelper.RegisterForPrinting();

   // Initialize print content for this scenario
   printHelper.PreparePrintContent(new PageToPrint());

   // Tell the user how to print
   MainPage.Current.NotifyUser("Print contract registered with customization, use the Print button to print.", NotifyType.StatusMessage);
}
当用户离开页面时,断开打印事件处理程序的连接。如果您有一个多页应用程序,并且没有断开打印连接,则当用户离开该页然后返回该页时会引发异常


您可以阅读更多信息并找到提示:提示本主题中的大多数示例都基于打印示例。要查看完整代码,请从GitHub上的Windows Universal samples repo下载Universal Windows Platform UWP打印示例。

GetPrintPreviewPage事件会为每个页面触发一次,当我返回页面时,事件不会触发。 我使用这段代码来持久化当前的预览页面

私有异步void PrintDoc_GetPreviewPageobject p_发送方,GetPreviewPageEventArgs p_参数 { SelectedPagePreview=p_args.PageNumber


我正在windows 8.1和tablet x64上进行测试。

这是Microsoft网站上的逐字记录。我尝试将此代码复制并粘贴到我的“MainPage”类中,但它布满了红色下划线,甚至无法编译。请提供一些更实用的指导,说明如何在简单的应用程序中实现此代码。如何为“Pr”添加参考在LPER班?
protected override void OnNavigatedTo(NavigationEventArgs e)
{
   // Initalize common helper class and register for printing
   printHelper = new PrintHelper(this);
   printHelper.RegisterForPrinting();

   // Initialize print content for this scenario
   printHelper.PreparePrintContent(new PageToPrint());

   // Tell the user how to print
   MainPage.Current.NotifyUser("Print contract registered with customization, use the Print button to print.", NotifyType.StatusMessage);
}