富文本文件在 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 中的富文本框中显示不同的主要内容,如果未能解决你的问题,请参考以下文章

有哪些比较轻的富文本编辑器

javascript中的富文本编辑

HTML 文档中的富文本编辑器如何实现其富文本格式?

深入理解javascript中的富文本编辑

Access 2010 中有限长度文本字段的富文本输入

如何在 C# 的富文本框中将文本添加到用户光标的位置?