我已经实现了一项打印功能,可以使用PrintVisual方法在我的WPF应用程序中打印一些财务图表。由于用户可以随意更改窗口大小和/或屏幕分辨率,因此我使用LayoutTransform,Measure和Arrange方法确保打印的图表均匀分布在整个页面上,而不管应用程序窗口的大小如何。当用户在实际打印机上打印或选择PDF打印驱动程序进行打印时,一切都能很好地工作。布局转换在场景后面生效,并在打印中显示,但用户不会在屏幕上出现任何闪烁或更改。
当用户选择XPS Document Writer时会出现问题。当用户这样做时,屏幕上的布局也会改变。当出现“另存为”对话框时,屏幕布局会根据提供的LayoutTransform进行更改,这会使图表变小或变大。当用户保存XPS文件或在“另存为”对话框中点击“取消”时,布局将恢复正常。但奇怪的是,只有当我们选择XPS Document Writer时才会发生这种情况。
但是,用户不希望看到这个..在XPS Document Writer的情况下,我该怎么做才能防止这种情况发生?
请建议。感谢
答案 0 :(得分:0)
也许您可以在应用变换之前复制画布或视觉效果。 clone不是内置于wpf UIElements,但您可以使用XamlWriter.Save()和XamlReader.Load通过XmlReader进行克隆。 google“wpf clone UIElement”或者我可以发布一些代码,如果你觉得这样的话。