2011-04-13 144 views
0

我已经实现了打印功能,可以使用PrintVisual方法在WPF应用程序中打印一些金融图表。由于用户可以自由改变他/她的窗口大小和/或屏幕分辨率,我已经使用了LayoutTransform,Measure和Arrange方法来确保打印的图表均匀分布在整个页面上,而不管应用程序窗口的大小如何。当用户在实际打印机上打印或选择PDF打印驱动程序进行打印时,所有的工作都非常好。布局变换在场景后面生效并显示在打印中,但用户在屏幕上不会出现任何闪烁或显示变化。在XPS文档编写器中进行WPF打印

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

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

请建议。谢谢

回答

0

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