c++-winrt - CanvasVirtualControl 可以用作 UWP PrintDocument 的 UIElement 吗?
问题描述
在尝试使用 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 。
感谢您对此的任何建议。
解决方案
答案是:不。看来,如果您的 UWP 应用正在打印 CanvasControl 或 CanvasVirtualControl 的内容,则 UWP 打印示例不是适当的指导;Print-From-Your-UWP-App 文档也不是。您需要为 PrintManager 提供 CanvasPrintDocument,并且它没有 Paginate 等事件。如果有人可以指出更完整的文档,将受到欢迎;与此同时,我正在努力。Microsoft.Graphics.Canvas.Printing 命名空间的文档是一个起点。
推荐阅读
- sql - 如何按日期获取价格总和并获得空结果?
- css - 使用 flexbox,我如何创建这个简单的应用程序页面登录屏幕?
- angular - 需要在 Angular 的 mat-dialog 上显示额外的数据
- c++ - 在编辑器属性更改中未调用 UWidget::SynchronizeProperties()
- google-bigquery - 访问 DataStudio 报告上的安全 GCS 图像
- laravel - Laravel 多列上的多对多同步()
- java - Java / Unix:如果另一个进程尝试在其间读取文件,一个进程能否成功写入文件
- python - AES 解密输出到字符串
- javascript - 如何防止feathers.js返回用户路由中的所有用户
- java - Java 中有没有办法将 Gherkin 文档格式化为字符串?