WPF RichTextBox RTF更新文本

本文关键字:文本 更新 RTF RichTextBox WPF | 更新日期: 2023-09-27 18:03:45

我有一个格式化为Rtf的WPF RichTextBox。我有一个动态添加超链接的方法。

然而,当RichTextBox文本通过添加所述超链接进行编辑时,Rtf输出是不正确的,因为超链接被附加到已经完成的Rtf文档的末尾。

我已经设法将RichTextBox Rtf文本格式化为Text,这解决了RichTextBox中的文本显示,但显然我的超链接丢失为纯文本。

是否有任何方法将Rtf RichTextBox文本"重新加载"到新的Flow Document中,以便我得到正确的Rtf输出?

我有这个方法,我在传递Rtf字符串(RichTextBox.Text),这给了我正确的Rtf,但我得到所有的Rtf标签回到RichTextBox文本…

  public void RebuildRtfForRichTextBox(string richTextBoxText)
    {
        FlowDocument doc = new FlowDocument(new Paragraph(new Run(richTextBoxText)));
        richTextBoxArticleBody.Document = doc;
    }

WPF RichTextBox RTF更新文本

正如你提到的RichTextBox有一个名为"Document"的属性。获取此属性将返回一个FlowDocument。如果你读这个,你可以看到FlowDocuments是由块组成的。你可以通过使用"Blocks"属性来遍历流程文档中的block。

使用

 flowDoc.Blocks.InsertBefore(flowDoc.Blocks.FirstBlock, p);

,您将能够在另一个块之前插入一个块。还可以访问这里了解如何添加段落或其他类型的块