尝试使用 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 命名空间的文档是一个起点。