WPF RichTextBox RTF更新文本?

时间:2014-05-16 13:31:31

标签: c# wpf richtextbox

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

但是,当通过添加所述超链接编辑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;
    }

1 个答案:

答案 0 :(得分:1)

正如您所提到的,RichTextBox有一个名为“Document”的属性。 获取此属性将返回FlowDocument。 如果您阅读this,则可以看到FlowDocuments由Blocks组成。 您实际上可以使用"Blocks" Property迭代流文档的块。

使用

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

您将能够在另一个之前插入一个块。 另请visit here了解如何添加段落或其他类型的块。