XPS文档编写器中的WPF打印

XPS文档编写器中的WPF打印,wpf,printing,document,xps,writer,Wpf,Printing,Document,Xps,Writer,我已经实现了一个打印功能,使用PrintVisual方法打印WPF应用程序中的一些财务图表。由于用户可以自由更改窗口大小和/或屏幕分辨率,因此我使用了布局转换、测量和排列方法,以确保打印的图表均匀地分布在整个页面上,而不考虑应用程序窗口的大小。当用户在实际打印机上打印或选择PDF打印驱动程序进行打印时,所有这些功能都非常有效。布局变换在场景后面生效,并显示在打印中,但用户不会在屏幕上体验到任何闪烁或显示变化 当用户选择XPS Document Writer时会出现问题。当用户这样做时,屏幕上的布

我已经实现了一个打印功能,使用PrintVisual方法打印WPF应用程序中的一些财务图表。由于用户可以自由更改窗口大小和/或屏幕分辨率,因此我使用了布局转换、测量和排列方法,以确保打印的图表均匀地分布在整个页面上,而不考虑应用程序窗口的大小。当用户在实际打印机上打印或选择PDF打印驱动程序进行打印时,所有这些功能都非常有效。布局变换在场景后面生效,并显示在打印中,但用户不会在屏幕上体验到任何闪烁或显示变化

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

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


请建议。谢谢

也许您可以在应用变换之前复制画布或视觉效果。克隆不是wpf UIElements内置的,但您可以通过XmlReader使用XamlWriter.Save和XamlReader.Load进行克隆。谷歌wpf克隆UIElement或者我可以发布一些代码,如果你觉得这是一种方式