【问题标题】:Removing TextDecoration from end of WPF RichTextBox run从 WPF RichTextBox 运行结束时删除 TextDecoration
【发布时间】:2012-09-11 17:10:09
【问题描述】:

我有一个带有粗体文本的 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(" ")

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

【问题讨论】:

  • 您可能获得了职位但没有设置职位。 msdn.microsoft.com/en-us/library/…
  • 我不确定你的意思。我设置了 CaretPosition 变量,但没有看到任何表明它可以忽略我在该链接中设置的内容。我错过了什么吗?
  • 这只是一条评论。可能 rtb 没有位置。也许试试 rtb.CaretPosition = caretPos;如链接中所示。

标签: c# wpf richtextbox flowdocument


【解决方案1】:

换行试试:

CaretPosition = newRun.ElementEnd;

收件人:

CaretPosition = newRun.ContentEnd;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2011-04-26
    • 2014-05-25
    相关资源
    最近更新 更多