0

我已经实现了一个打印功能,通过使用 PrintVisual 方法在我的 WPF 应用程序中打印一些财务图表。由于用户可以自由更改他/她的窗口大小和/或屏幕分辨率,我使用了 LayoutTransform、Measure 和 Arrange 方法来确保打印的图表均匀分布在整个页面上,而与应用程序窗口的大小无关. 当用户在实际打印机上打印或选择 PDF 打印驱动程序进行打印时,一切都运行良好。布局变换在幕后生效并显示在打印中,但用户不会在屏幕上体验到任何闪烁或显示变化。

当用户选择 XPS Document Writer 时,问题就出现了。当用户这样做时,屏幕上的布局也会改变。当“另存为”对话框出现时,屏幕布局会根据提供的 LayoutTransform 更改,从而使图表变小或变大。当用户保存 XPS 文件或点击“另存为”对话框中的取消时,布局恢复正常。但奇怪的是,这只有在我们选择 XPS Document Writer 时才会发生。

但是,用户不想看到这个。在 XPS Document Writer 的情况下,我能做些什么来防止这种情况发生?

请建议。谢谢

4

1 回答 1

0

也许您可以在应用转换之前克隆您的画布或视觉对象。clone 不是 wpf UIElements 内置的,但您可以使用 XamlWriter.Save() 和 XamlReader.Load 通过 XmlReader 进行克隆。谷歌“wpf clone UIElement”或者我可以发布一些代码,如果你觉得这是要走的路。

于 2011-04-14T23:05:14.190 回答