富文本文件在 Win10 和 Win7 中的富文本框中显示不同
Posted
技术标签:
【中文标题】富文本文件在 Win10 和 Win7 中的富文本框中显示不同【英文标题】:Rich Text File display differently in a Rich Text Box in Win10 compared to Win7 【发布时间】:2019-06-10 08:01:06 【问题描述】:问题是在我的 Win10 PC 上编译时没有显示带有图像的 RTF 文件。
最近我更换了我的电脑,并将操作系统升级到 Win10,将 VS 升级到 VS2017。 Win10 是最新的,VS2017 告诉我它具有 C# 所需的所有升级。我已经在 Win 7 plus VS2015 系统上编写和升级这个应用程序两年多了,没有任何问题。我也在Win10 plus 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 正确显示两个文件中的图像?
【问题讨论】:
存在很多关于这个问题的问题。最明显的一点是您需要在加载文件之前将 ReadOnly 属性设置为 false。 【参考方案1】:偶然发现一篇关于如何使 RTF 和 Doc 文件更小的文章。看来您可以将文件限制为图像的一份副本。
建议在Win10中查找注册表项
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options
并添加一个名为
的字符串ExportPictureWithMetafile = 0
当我现在将 RTF 文件保存在 Win10 中并将其编译到我看到图片的应用程序中时,我感到非常惊讶。到目前为止,这是对我有用的解决方案。
【讨论】:
在 Win10 更新后,它再次停止工作。现在我发现我需要设置 ExportPictureWithMetafile = 1。以上是关于富文本文件在 Win10 和 Win7 中的富文本框中显示不同的主要内容,如果未能解决你的问题,请参考以下文章