【发布时间】:2023-03-17 15:53:02
【问题描述】:
我知道如何调用打印对话框并做其他事情。我的问题是:打印 WPF 页面的最佳做法是什么。
调用另一个页面 边距、格式和布局有效 出去。然后在上面调用 print
调用用户控件 边距、格式和布局有效 出去。然后在上面调用 print
调用一个包含所有 边距、格式和布局有效 出去。然后在上面调用 print
或任何其他首选方式 这样做。
请告诉我您是如何处理印刷的?
【问题讨论】:
我知道如何调用打印对话框并做其他事情。我的问题是:打印 WPF 页面的最佳做法是什么。
调用另一个页面 边距、格式和布局有效 出去。然后在上面调用 print
调用用户控件 边距、格式和布局有效 出去。然后在上面调用 print
调用一个包含所有 边距、格式和布局有效 出去。然后在上面调用 print
或任何其他首选方式 这样做。
请告诉我您是如何处理印刷的?
【问题讨论】:
在 WPF 中,您有许多打印选项。哪个最适合的问题取决于 IMO 的打印内容和所需的质量。
印刷视觉
如果您想打印与 UI 中的表示完全一样的东西,那么您可以尝试直接打印构建您的打印内容的根内容的视觉效果。如果您有定位问题并且必须更正此视觉对象的属性,我建议创建它的内存副本,转换副本,然后打印出此副本。打印出视觉效果在 IMO 有许多缺点。除了简短的技巧和迷你工具外,我很少使用它。如果我使用,我主要必须创建提到的不可见副本并打印出来。如果您这样做,请注意您必须从代码中调用 Measure 和 Arrange。
打印 FlowDocument
另一种可能性是打印出 FlowDocument。如果您有适合FlowDocuments 的内容,我发现这是一种创建精美内容以打印出来的简单方法。大多数情况下,如果您有一些简单的报告,请列出一些图像,这种方式是一种不错的方式。打印质量很好,只要您不想覆盖行为,许多复杂的操作就会自动为您完成,这也是可能的。这种打印输出的质量在 IMO 非常好。
XPS 打印
悬停如果您有复杂的内容并且希望它很好地打印出来,则必须构建 XPS 内容并将其打印在 XPS Print Path 上。这样,您拥有所有可能性和选择,质量非常好,但您要做的工作最多。我不太喜欢它,但主要是我打印的方式。
我认为,您的问题主要与第一个块有关,但是我认为如果打印视觉效果还不够(对我来说很少足够),那么看看您有哪些选项可能会有所帮助。希望这能回答你的问题。
【讨论】: