2012-04-18 46 views
7

我正在使用WPF圖表組件。 我需要實現一個功能,以將圖表視圖渲染爲圖元文件(WMF/EMF),以便用戶可以將該文件粘貼到Word或Powerpoint等任何辦公室產品中,並且可以調整文件大小而不影響渲染圖像的質量。將WPF視覺渲染爲WMF/EMF文件

我在這裏看到過一些類似的問題,但沒有一個能得到任何有用的答案。

我從一些文章中瞭解到,由於安全問題,WPF不支持將EMF/WMF渲染爲可視化,但是必須有一些替代品,它應該允許爲基於Winform的應用程序和辦公室提供EMF/WMF之類的交互適合或ms塗料。

歡迎任何關於前進的建議,謝謝。

回答

3

呀XPS打印OK,但是你想進入圖元文件,不是嗎?剛看到這裏面可以幫忙看一下最底部組鏈接

Does WPF support reading/writing WMF/EMF files natively?

貌似這兩個鏈接可能會感興趣

http://softronix.com/download/WpfToWmfClipboard.zip

http://xamltoys.codeplex.com/

+0

感謝您的回覆Sacha,XamlToys可以是一個很好的解決方案,但是對於他們來說,它需要大量的時間來渲染EMF,儘管看起來像現在唯一的解決方案。 – Pank 2012-04-19 08:11:52

+0

很棒!!!!!!!非常感謝 ! – 2012-11-02 21:16:49

1

我想你會想要做的是使用RenderTargetBitmap類首先獲得您的控件的圖像,然後將其轉換爲EMF。

其實這篇博客給你一個很好的起點:http://www.switchonthecode.com/tutorials/wpf-tutorial-getting-from-wpf-to-a-metafile-and-onto-the-clipboard

這就是說,因爲你是一個BMP工作(這是你將WPF得到什麼)所得到的圖像也不會被基於矢量的即使您設法將其另存爲EMF文件。

安韋我希望可以幫助你以某種方式

+0

謝謝sacha,我知道你所建議的方式,它不會幫助我在ms字或powerpoint中縮放產生的EMF,因爲它在縮放時仍會失去圖形質量。您是否知道我可以直接或通過使用任何其他中間格式將視覺呈現給emf的其他方式。 – Pank 2012-04-18 15:27:32

+0

據我所知,我們可以渲染視覺到xps這是一種基於矢量的格式,我已經使用它來實現打印功能,但剪貼板或ms字沒有配備接受xps作爲輸入格式並呈現它的功能。 – Pank 2012-04-18 15:31:51

1

我有一個解決方案這個, 我已經使用XamlToys將視覺轉換爲Emf 以下是達到此目的的步驟: 獲取框架元素。 將其轉換爲XPS 然後將其轉換爲XamlStream 然後使用XamlToys將其轉換爲EMF。 它運作良好,並提供高品質的EMF。

試一試,讓我知道它是否有幫助。

+0

Pank,謝謝你5月4日的總結。我已經嘗試過了。對於那些想要使用該解決方案的人來說:XamlToys尚未實現Visual3D(GetDrawingFromXaml()拋出異常'Visual3D未實現')。因此,如果使用Visual3D,XamlToys不是一個解決方案。 – Falo 2012-08-29 14:57:17