所以我一直在构建一个WPF应用程序,它可以打印一些表单。这些表格只预印有空格,您应该在这些空格中填入某些信息。 WPF应用程序需要精确地打印文本,以便WPF打印的文本与预先打印格式的文本和空白完全对齐。通过使用DocumentViewer和FixedDocument,我能够在很大程度上完成任务。如何隐藏DocumentViewer页面元素打印
由于某种原因,VS WPF设计人员不喜欢将PageContent放入到DocumentViewer的FixedDocument中,即使您可以将PageContent放在任何其他容器(如滚动查看器)中,它也会得到完美呈现。但即使VS XAML解析器不能正常工作,我也可以编译并运行我的应用程序,而不会出现任何问题。
另一方面的问题来自我无法找到一种方法来隐藏打印的FixedDocument中的某些元素。为了让用户更加精确地将信息输入到应用程序中,并且要知道打印表单中的位置,我将该信息放置在FixedDocument的背景中。但是我只希望当用户在DocumentViewer中查看文档时显示它,我不想在按下打印按钮时打印该图像。
现在在Windows窗体中,我可以处理OnPrint事件并使用IsPrintPreview属性,我可以决定打印什么和不打印什么。另一方面,DocumentViewer看起来不允许我决定要打印什么和不打印什么。
Soooo,长话短说,有没有办法在DocumentViewer中打印FixedDocument中的某些控件?
或者,您可以将不透明属性数据绑定到您的ViewModel中的一个属性,以显示您是否正在打印。这样你可以避免隐藏所有你想隐藏的东西所需的意大利面代码。 – 2015-04-15 07:30:12