2017-09-30 9 views
1

標準のWPF RichTextBoxコントロールを使用しています。'Background'プロパティがテキスト書式設定に無効です

私は正常に前景色を設定しますが、背景色を設定すると、次のエラーを与えることができます。私は使用しています

// SUCCESS 
this.rtfDocument.Selection.ApplyPropertyValue(
    System.Windows.Controls.RichTextBox.ForegroundProperty, 
    System.Windows.Media.Brushes.Red); 

// ERROR 
this.rtfDocument.Selection.ApplyPropertyValue(
    System.Windows.Controls.RichTextBox.BackgroundProperty, 
    System.Windows.Media.Brushes.Blue); 

:ここ

System.ArgumentException: ''Background' property is not valid for text formatting.'

は、私がテストしていたコードですSystem.Windows.Media名前空間ブラシ他のStackoverflow質問に言及。

EDIT:

は興味深いことに、背景色は、このエラーがスロー取得:

// SUCCESS 
var f = this.rtfDocument.Selection.GetPropertyValue(
    System.Windows.Controls.RichTextBox.ForegroundProperty); 

// ERROR 
var b = this.rtfDocument.Selection.GetPropertyValue(
    System.Windows.Controls.RichTextBox.BackgroundProperty); 

おそらくエラーが実際のプロパティ何とか自分自身をどうするのですか?

答えて

2

TextRange.ApplyPropertyValueメソッドは、RichTextBox自体ではなく、ドキュメント要素にプロパティ値を適用します。

ように設定していないリッチテキストボックスのプロパティが、代わりのTextElementプロパティ:

rtfDocument.Selection.ApplyPropertyValue(
    System.Windows.Documents.TextElement.ForegroundProperty, 
    System.Windows.Media.Brushes.Red); 

rtfDocument.Selection.ApplyPropertyValue(
    System.Windows.Documents.TextElement.BackgroundProperty, 
    System.Windows.Media.Brushes.Blue); 
関連する問題