WPF 是不是支持本机读取/写入 WMF/EMF 文件?

Posted

技术标签:

【中文标题】WPF 是不是支持本机读取/写入 WMF/EMF 文件?【英文标题】:Does WPF support reading/writing WMF/EMF files natively?WPF 是否支持本机读取/写入 WMF/EMF 文件? 【发布时间】:2010-10-07 22:58:37 【问题描述】:

Windows Presentation Foundation 可以读/写 WMF/EMF 文件,而无需使用 WinForms Interop 或 Win32。

如果没有,是什么原因?

【问题讨论】:

【参考方案1】:

在 MSDN 上快速搜索发现 a thread 包含 Microsoft 的 PM Peggi Goodwin 的帖子:

WPF 不支持 EMF 和 WMF 图像格式。这些格式比其他图像格式更容易受到安全漏洞的影响,因此我们不打算支持它们。

【讨论】:

是的,谢谢罗伯特。我注意到了相同的线程并且不太相信安全漏洞会简单地破坏对这些文件格式的支持而不会被另一种格式替换。 我们一直在升级我们的 WinForms 应用程序以使用 WPF,并且在元文件支持方面遇到了同样的问题,我们将其用于复制粘贴到 Office 产品中。目前,我们手动将 XAML 转换为元文件(在使用 XPS 将复杂的 XAML 转换为简单的路径和字形之后)。【参考方案2】:

我做到了!!!

我在我的实际代码中使用了 ComponentOne 的 WPF 图表,但为了使示例简单,我只是做了一个按钮。但它确实适用于复杂的 wpf 小部件。字体、透明度、抗锯齿等一切正常。我可以粘贴到 Word 中并更改图表上的标签等。

基本上,我将 XAML 抽取到 XPS,然后将其重新导入 XAML。

然后我使用了一个名为 XAMLToys 的将 XAML 转换为 WMF 的开源项目。

XAMLToys 在 99% 的情况下都会失败,因为您无法序列化复杂的 XAML 对象

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

对这两个项目表示赞赏

http://xamltoys.codeplex.com/

http://khason.net/blog/converting-fixeddocument-xpsdocument-too-to-flowdocument/

【讨论】:

我不明白这是在说什么。 99% 的时间都失败了……听起来不像是成功。

以上是关于WPF 是不是支持本机读取/写入 WMF/EMF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将emf文件转换成png格式

创建具有特定 mime 类型的文件

HDF5 是不是支持并发读取或写入不同文件?

如何在本机中写入/读取直接 ByteBuffer?

在本机互操作中控制 WPF

WPF 实现调用本机摄像头~