C# 如何使用代码中的模板更改元素的背景?

C# 如何使用代码中的模板更改元素的背景?,c#,wpf,templates,C#,Wpf,Templates,因此,我有一个TextBox,表单中应用了模板(它对所有文本框都是全局的)。我想更改某些文本框的背景色,这取决于其中是否有无效条目。但是我需要更改以仅应用于一个特定的文本框(因此我无法更改模板) 从代码中,我想说: tb.Background = (SolidColorBrush)FindResource("myColor"); 当我目前这样做时,什么也没有发生,我只是假设这是因为有一个模板应用于文本框tb 有没有一种方法可以做到这一点,而不必为不正确的输入创建自定义的模板/样式?(我需要对多

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

从代码中,我想说:

tb.Background = (SolidColorBrush)FindResource("myColor");
当我目前这样做时,什么也没有发生,我只是假设这是因为有一个模板应用于
文本框tb


有没有一种方法可以做到这一点,而不必为不正确的输入创建自定义的
模板
/
样式
?(我需要对多个控件重复此过程,我不需要那么多样式/模板)。

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

进近#2

我想你是在用xaml创建文本框吧?在这种情况下,您需要为文本框指定一个名称。然后在代码隐藏中,您可以使用各种笔刷设置背景属性。其中最简单的是SolidColorBrush:

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

很难说没有看到您的模板,但如果您的代码不起作用,请确保您的模板具有以下内容:

Background="{TemplateBinding Background}"

如果没有此选项,则无法从模板外部设置背景。

当您说更改元素的背景时,您是说要根据特定条件更改特定文本框控件的背景颜色吗?这些似乎不起作用……出于某种原因,我无法更改背景属性……这应该可以。。你能发布你正在使用的所有相关代码吗?这也是WPF吗。。?
Background="{TemplateBinding Background}"