0

所以我有一个应用到它TextBox的表单(它对所有文本框都是全局的)。Template我想要的是更改某些文本框的背景颜色,具体取决于其中是否存在无效条目。但我需要将更改仅应用于一个特定的文本框(因此我无法更改模板)

从代码中,我想说:

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

当我目前这样做时,什么都没有发生,我只假设这是因为有一个模板应用于TextBox tb.

有没有办法做到这一点,而无需为不正确的条目进行自定义Template/ ?Style(我需要对多个控件重复此过程,并且我不想要这么多样式/模板)。

4

2 回答 2

0

没有看到你的模板很难说,但如果你的代码不起作用,请确保你的模板有这个:

Background="{TemplateBinding Background}"

没有这个,你不能从模板外部设置背景。

于 2012-08-03T06:28:34.067 回答
0

您可以使用两种方法。方法#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 回答