在尝试使用CanvasVirtualControl作为源从UWP应用(在C ++ / winrt中)进行打印时,打印UI看起来不错,但预览为空白。
printrequest似乎起作用,并且调用了Paginate等事件。
对于该测试,我已经存储了其中显示图形的CanvasVirtualControl。该控件用作ScrollViewer的内容。数组m_print_preview_pages定义为UIElements的std :: vector。 我用
来响应PrintDocument的事件SetPreviewPagem_print_document.SetPreviewPage(args.PageNumber(), m_print_preview_pages[args.PageNumber()-1]);
VS输出报告错误,
0x80040155 Failed to find proxy registration for IID: ...
在继续之前,我想知道这是否是干井。 UWP打印示例不使用CanvasVirtualControl。这不可能吗?我不清楚CanvasVirtualControl是PrintDocument源所必需的UIElement。
谢谢您的任何建议。
答案 0 :(得分:0)
答案是:否。看来,如果您的UWP应用正在打印CanvasControl或CanvasVirtualControl的内容,则UWP打印示例不适合用作指导。 “从您的UWP应用程序打印”文档也没有。您需要为PrintManager提供一个CanvasPrintDocument,并且它没有诸如Paginate之类的事件。同时我正在努力。 Microsoft.Graphics.Canvas.Printing命名空间的文档是一个起点。