从WPF RichTextBox运行结束时删除TextDecoration

时间:2012-09-11 17:10:09

标签: c# wpf richtextbox flowdocument

我有一个带有粗体文本的RichTextBox,但是当用户输入分号;时,需要以编程方式使粗体“结束”。

例如,我的富文本框有以下粗体文字:

hello world

当我添加分号;并继续输入时,我想要了解以下内容:

hello world; how are you?

我尝试过以下方面:

var newRun = new Run();
paragraph.Inlines.InsertAfter(paragraph.Inlines.LastInline, newRun);
CaretPosition = newRun.ElementEnd;

但新创建的运行似乎不是我正在输入的那个(我不知道它是否不存在,或者我只是不输入它)。

有人知道解决这个问题的好方法吗?

更新:使用默认文本的运行。

我注意到如果我创建了一个运行:

var newRun = new Run(" ")

那么它会起作用,但有些情况下我宁愿不添加空格。有什么见解吗?

1 个答案:

答案 0 :(得分:2)

尝试更改行:

CaretPosition = newRun.ElementEnd;

要:

CaretPosition = newRun.ContentEnd;