2012-04-18 92 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