CanvasVirtualControl 可以用作 UWP PrintDocument 的 UIElement 吗?



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

打印请求似乎有效,并调用了 Paginate 等的事件。

对于此测试,我存储了出现绘图的 CanvasVirtualControl。该控件用作滚动查看器的内容。数组,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。

感谢您对此的任何建议。

答案是:不。看来,如果你的 UWP 应用正在打印画布控件或画布虚拟控件的内容,则 UWP 打印示例不是适当的指南;"从你的 UWP 应用打印"文档也不是。您需要向 PrintManager 提供 CanvasPrintDocument,并且它没有 Paginate 等事件。如果有人可以指出更完整的文档,我们将受到欢迎;与此同时,我正在解决它。Microsoft.Graphics.Canvas.Printing 命名空间的文档是一个起点。

最新更新