在 RichTextBox 的 FlowDocument 中更新段落的最快方法

Fastest way to update paragraph in RichTextBox's FlowDocument

我会更新 FlowDocument 中的一个段落(在 RichTextBox 中)。

目前,我每次都使用函数 Clear() 来清空块,然后用我的段落填充 RichTextBox.Document.Blocks。

但是,每次清除和添加我的段落时,速度非常慢,我为此损失了很多性能。如何优化这些指令并高效更新RichTextBox中的段落?

谢谢

如果我没理解错的话,我怀疑是段落中的 运行 发生了变化,而不是段落。

如果您在代码中创建 paragraph/runs,您可能没有设置语言。

如果您的 运行 没有语言设置,并且您在 RichTextBox 中键入内容,运行 将在您键入的位置拆分以创建 3 个 运行。

将 Run/Paragraph 上的语言设置为您的语言环境,例如en-gb 或 en-us

var run = new Run("Test") {Language = XmlLanguage.GetLanguage("en-us") };

如果您现在在 运行 的中间键入,将不会添加新的 runs/paragraphs。