0

したがってTextBox、フォームに がTemplate適用されています (すべてのテキストボックスにグローバルです)。私が望むのは、無効なエントリがあるかどうかに応じて、特定のテキスト ボックスの背景色を変更することです。ただし、特定の 1 つのテキスト ボックスのみに変更を適用する必要があります (そのため、テンプレートを変更することはできません)。

コードから、私は言うことができるようにしたい:

tb.Background = (SolidColorBrush)FindResource("myColor");

現在これを行っても何も起こりません..にテンプレートが適用されているためだと思いTextBox tbます.

カスタムを作成せずにこれを行う方法はありますかTemplate/Style間違ったエントリのために? (複数のコントロールに対してこのプロセスを繰り返す必要がありますが、それほど多くのスタイル/テンプレートは必要ありません)。

4

2 に答える 2

0

使用できるアプローチは2つあります。アプローチ#1

textBox1.Background = Brushes.Blue;
textBox1.Foreground = Brushes.Yellow;

アプローチ#2

xamlでTextBoxを作成していると思いますか?その場合、テキストボックスに名前を付ける必要があります。次に、背後のコードで、さまざまなブラシを使用してBackgroundプロパティを設定できます。最も単純なのはSolidColorBrushです。

myTextBox.Background = new SolidColorBrush(Colors.White);
于 2012-08-02T21:24:21.503 に答える
0

テンプレートを見ずに言うのは難しいですが、コードが機能しない場合は、テンプレートに次のものが含まれていることを確認してください。

Background="{TemplateBinding Background}"

これがないと、テンプレートの外から背景を設定できません。

于 2012-08-03T06:28:34.067 に答える