Template と Style をコードで書いたから、今度は Trigger。
// フォーカスがある TextBox の背景色を変更するトリガー Trigger trigger = new Trigger(); trigger.Property = TextBox.IsFocusedProperty; trigger.Value = true; trigger.Setters.Add(new Setter( TextBox.BackgroundProperty, new SolidColorBrush(Colors.Yellow))); // トリガーはスタイルで指定する Style style = new Style(typeof(TextBox)); style.Triggers.Add(trigger); // Window のリソースにスタイルを追加 // すべての TextBox に適用する Resources.Add(typeof(TextBox), style);
これだけ。コードはすごく簡単ですね。でも今回は結構苦戦しました(;^_^A
最初は
// TextBox の Triggers に直接ぶっこむ!
_textBox.Triggers.Add(trigger);
と書いていたんですが、これだと実行時に XamlParseException が発生します。スタイルを利用することに気付くまで1時間程かかりました。
なお TextBox には Style プロパティがあり、
// Trigger を追加したスタイルをセットする
_textBox.Style = style;
と書いても動作します。