CanvasVirtualControl可以用作UWP PrintDocument的UIElement吗?

时间:2019-03-27 21:30:41

标签: c++-winrt win2d

在尝试使用CanvasVirtualControl作为源从UWP应用(在C ++ / winrt中)进行打印时,打印UI看起来不错,但预览为空白。

printrequest似乎起作用,并且调用了Paginate等事件。

对于该测试,我已经存储了其中显示图形的CanvasVirtualControl。该控件用作ScrollViewer的内容。数组m_print_preview_pages定义为UIElements的std :: vector。 我用

来响应PrintDocument的事件SetPreviewPage
m_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。

谢谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

答案是:否。看来,如果您的UWP应用正在打印CanvasControl或CanvasVirtualControl的内容,则UWP打印示例不适合用作指导。 “从您的UWP应用程序打印”文档也没有。您需要为PrintManager提供一个CanvasPrintDocument,并且它没有诸如Paginate之类的事件。同时我正在努力。 Microsoft.Graphics.Canvas.Printing命名空间的文档是一个起点。