2011-04-13 74 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」,或者我可以發佈一些代碼,如果你覺得這是要走的路。