【发布时间】:2021-04-02 18:35:47
【问题描述】:
问题:我们如何以编程方式替换WPF RichTextBox 中的某些文本而不丢失其格式?在下面的代码中,我显然没有做正确的事情。我的在线搜索提供了一些相关建议,但他们似乎使用的是 Winform,其中 RichTextBox 具有 rtf 属性 - 例如this one。
以下代码正确地将 rstu 内的 WPF RichTexBox 中的文本 abcd 替换为 WPF RichTexBox,但它会丢失 RichTextBox 的格式,如下两图所示:
//rtbTest is the name of the RichTextBox
TextRange textRange = new TextRange(rtbTest.Document.ContentStart, rtbTest.Document.ContentEnd);
string oldText = textRange.Text;
string newText = oldText.Replace("abcd", "rstu");
textRange.Text = newText;
将 abcd 替换为 rstu 之前的 RichTextBox 屏幕截图:
将 abcd 替换为 rstu 后的 RichTextBox 屏幕截图:
我们可以看到格式丢失了。下面显示的列表并不是真正的格式化编号列表,它可能只是未格式化的文本(如1. Item 1 等)
【问题讨论】:
标签: c# wpf richtextbox rtf