で別の問題が発生しましRichTextBox
た。次のような色のテキスト範囲がある場合:
var range = new TextRange(TextInput.Document.ContentStart,
TextInput.Document.ContentEnd);
range.Text = "asdfghjk";
var colored = new TextRange(TextInput.Document.ContentStart.GetPositionAtOffset(3, LogicalDirection.Forward),
TextInput.Document.ContentStart.GetPositionAtOffset(7, LogicalDirection.Forward));
colored.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue);
そして、変更リスナーには次のようなものがあります。
var range = new TextRange(TextInput.Document.ContentStart, TextInput.Document.ContentEnd);
if (range.Text.Length == 9)
range.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Black);
青色の文字の 1 つがバックスペースを使用して削除され (delete キーは正常に機能すると思います)、すぐに入力を開始すると、書式設定前と同様に、表示されるテキストは blueになります。なぜそれが起こっているのか、それを回避する方法は何なのかに興味があります。