所以我一直在构建一个在某些表单上打印的 WPF 应用程序。这些表格预先印有空白,您应该在其中填写一些信息。WPF 应用程序需要精确打印文本,以便 WPF 打印的文本与预打印形式的文本和空白完美对齐。通过使用 DocumentViewer 和 FixedDocument,我能够在很大程度上成功地完成任务。
最大的问题是,由于某种原因,VS WPF 设计器不喜欢将 PageContent 放入 DocumentViewer 中的 FixedDocument 中,即使您可以将 PageContent 放入任何其他容器(如 Scroll Viewer)中并且它会完美呈现。但即使 VS XAML 解析器无法运行,我也可以毫无问题地编译和运行我的应用程序。
另一方面的问题来自于我无法找到一种方法来隐藏 FixedDocument 中的某些元素以防止打印。为了让用户更准确地将信息输入应用程序并知道我将在打印表单中放置该信息的位置,我将表单的扫描图像放在 FixedDocument 的背景中。但我只希望在用户在 DocumentViewer 中查看文档时显示它,我不希望在他按下打印按钮时打印该图像。
现在在 Windows 窗体中,我可以处理 OnPrint 事件并使用 IsPrintPreview 属性可以决定打印什么和不打印什么。另一方面,DocumentViewer 似乎不允许我决定打印什么和不打印什么。
Soooo,长话短说,有没有办法隐藏 FixedDocument 中的某些控件以防止在 DocumentViewer 中打印?