我有一个格式化为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;
}
答案 0 :(得分:1)
正如您所提到的,RichTextBox有一个名为“Document”的属性。 获取此属性将返回FlowDocument。 如果您阅读this,则可以看到FlowDocuments由Blocks组成。 您实际上可以使用"Blocks" Property迭代流文档的块。
使用
flowDoc.Blocks.InsertBefore(flowDoc.Blocks.FirstBlock, p);
您将能够在另一个之前插入一个块。 另请visit here了解如何添加段落或其他类型的块。