2012-08-02 79 views
0

所以我有一个TextBox的形式,其中应用了Template(它对所有文本框都是全局的)。我想要的是改变某些文本框的背景颜色,取决于它是否有无效的条目。但我需要改变只适用于一个特定文本框(所以我不能改变模板)如何用代码中的模板更改元素的背景?

从代码,我希望能够说:

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

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

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

+0

当你说改变一个元素的背景你是说你想改变特定的TextBox控件的背景颜色根据特定的条件..? – MethodMan 2012-08-02 21:21:49

回答

0

有两种方法可以使用。 方法#1

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

方法2

我想你正在创建XAML中的文本框?在这种情况下,你需要给文本框一个名字。然后在后面的代码中,可以使用各种画笔设置Background属性。其中最简单的是的SolidColorBrush:

myTextBox.Background = new SolidColorBrush(Colors.White); 
+0

这些似乎没有工作......由于某种原因,我不能改变背景属性.. – Toadums 2012-08-02 21:39:37

+0

这应该工作..你可以发布你使用的所有相关的代码也是这个WPF ..? – MethodMan 2012-08-02 21:41:44

0

很难没有看到你的模板说,但如果你的代码不能正常工作,请确保您的模板有这样的:

Background="{TemplateBinding Background}" 

没有这个,您无法从模板外部设置背景。

相关问题