1

太字のテキストを含む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(" ")

そうすれば動作しますが、スペースを追加したくない場合があります。何か洞察はありますか?

4

1 に答える 1

2

行を変更してみてください:

CaretPosition = newRun.ElementEnd;

に:

CaretPosition = newRun.ContentEnd;
于 2013-02-24T18:42:29.770 に答える