所以我在表单中有一个TextBox
,其中Template
已应用于它(它对所有文本框都是全局的)。我想要的是更改某些文本框的背景颜色,具体取决于其中是否有无效的条目。但我需要将更改仅应用于一个特定的文本框(因此我无法更改模板)
从代码中,我希望能够说:
tb.Background = (SolidColorBrush)FindResource("myColor");
当我这样做时,没有任何反应,我只是假设这是因为有一个模板应用于TextBox tb
。
有没有办法在不为自定义Template
/ Style
进行错误输入的情况下执行此操作? (我需要为多个控件重复此过程,我不想要这么多样式/模板)。
答案 0 :(得分:0)
您可以使用两种方法。 方法#1
textBox1.Background = Brushes.Blue;
textBox1.Foreground = Brushes.Yellow;
方法#2
我认为你在xaml中创建TextBox?在这种情况下,您需要为文本框命名。然后在后面的代码中,您可以使用各种画笔设置Background属性。最简单的是SolidColorBrush:
myTextBox.Background = new SolidColorBrush(Colors.White);
答案 1 :(得分:0)
如果没有看到您的模板,很难说,但如果您的代码不起作用,请确保您的模板具有以下功能:
Background="{TemplateBinding Background}"
如果没有此功能,则无法从模板外部设置背景。