问题是当我在我的Win10 PC上编译时,带有图像的RTF文件不显示。
最近,我更换了我的PC,并将操作系统升级到Win10,将VS升级到VS2017。Win10是最新的,VS2017告诉我它已经完成了C#所需的所有升级。我已经在Win 7 plus VS2015系统上编写和升级这个应用程序两年多了,没有任何问题。我还在Win10和VS2017系统上编译了相同的应用程序,代码更改没有任何问题。
对于帮助,我使用了一个富文本文件,并将其放入一个富文本框中。我先
private RichTextBox rtb_help;
然后在表单加载时,我使用
rtb_help.Rtf = Resources.Help;
这允许编写此文件的人不了解编程知识,只需将我编译的新文件放在其中即可。这就是本周早些时候发生的事情。当我编译完应用程序并按下“帮助”键后,我在文件中看不到任何图片。我发现,如果我把.RTF文件带回我的Win7 PC,用写字板重新保存,然后在我的Win10系统上编译它,它就可以工作了。
当我比较Win7写字板和Win10写字板的文件时,我发现图像有以下不同之处。
Win7 = \pard\nowidctlpar\qc\f2\fs22{\pict\wmetafile8\picw5318\pich6694\picwgoal1839\pichgoal2315
Win10 = \pard\nowidctlpar\qc\f2\fs22{\pict{\*\picprop}\wmetafile8\picw5318\pich6694\picwgoal1839\pichgoal2315
Win10似乎从文件中的其他位置引用了带有{*\picprop}的图像的属性。这意味着richtextbox无法正确读取文件,因此忽略了图像,并且不会给出错误/警告。
我在写字板中看不到可以改变这一点的设置,但也许它们是隐藏的,我需要一个特殊的键序列?
如何让richtextbox正确显示这两个文件中的图像?
发布于 2019-01-17 16:12:53
我偶然发现了一篇关于如何使RTF和Doc文件更小的文章。似乎您可以将该文件限制为该图像的一个副本。
建议在Win10中查找注册表项
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options
并添加一个名为的字符串
ExportPictureWithMetafile = 0
当我现在将RTF文件保存在Win10中并将其编译到我看到的应用程序中时,我完全感到惊讶。到目前为止,这就是对我有效的解决方案。
https://stackoverflow.com/questions/54213580
复制相似问题