2012-08-02 53 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}" 

沒有這個,您無法從模板外部設置背景。

相關問題