我们使用外部组件(MigraDoc)来组成一个RTF文档。然后通过将RTF作为字符串赋给System.Windows.Forms.RichTextBox
的Rtf
字段并阅读Text
字段来将其转换为纯文本。这在早些时候是有效的,但现在我们发现了一个问题(已经存在一段时间了)。
纯文本转换在Windows 10上不起作用,但相同的应用程序在Windows 7上起作用。分配Rft
字段后,Text
字段保持为空,并且Rft
字段也没有刚刚分配的值。*
然而,我们的应用程序的早期版本也可以在Windows 10上运行。即使在这方面没有直接的结构性变化。一个可能影响的变化是.Net目标版本从4.0到4.7.2的变化(但很难验证这一点了)。
如果我从Windows 7中获取RTF字符串并将其另存为文件,它将在Windows 7的写字板上打开,但在Windows 10的写字板上无法打开。
其他人有没有分阶段解决类似的问题?或者有没有什么想法可以解决这个问题?
- 而是价值观:
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\f0\fs17\par
}
**编辑:**MigraDoc版本为1.32,即最新的非测试版。
1条答案
按热度按时间ve7v8dk21#
如果您想试用
RICHEDIT20W
版本的RichEdit控件(Rich Text Edit Control v. 3.1),请使用像这样构建的自定义控件。它尝试加载riched20.dll
库,如果成功,则在CreateParams
重写中设置控件的类名。您还可以尝试加载通常随MS Office安装提供的
RICHEDIT60W
版本进行测试。此版本也具有不同的行为。在这种情况下,您必须提供库的完整路径,这取决于安装的Office版本和位数
实际上,您可以使用特定版本的控件。
调整这段代码,使其按照您的喜好工作。实际上,它允许在版本
RICHEDIT20W
和RICHEDIT50W
之间切换(设计时或运行时)