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;
}
正如你提到的RichTextBox有一个名为"Document"的属性。获取此属性将返回一个FlowDocument。如果你读这个,你可以看到FlowDocuments是由块组成的。你可以通过使用"Blocks"属性来遍历流程文档中的block。
使用 flowDoc.Blocks.InsertBefore(flowDoc.Blocks.FirstBlock, p);
,您将能够在另一个块之前插入一个块。还可以访问这里了解如何添加段落或其他类型的块