2012-08-02 4 views
0

그래서 Template이 적용된 양식의 TextBox을 가지고 있습니다 (모든 텍스트 상자에 대해 글로벌 임). 내가 원하는 것은 잘못된 텍스트가 있는지 여부에 따라 특정 텍스트 상자의 배경색을 변경하는 것입니다.코드에서 템플릿이있는 요소의 배경을 변경하는 방법은 무엇입니까?

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

을 나는 현재이 작업을 수행 할 때 :하지만

코드에서

, 내가 말할 수 있어야합니다 (그래서 템플릿을 변경할 수 없습니다) 단지 하나의 특정 텍스트 상자에 적용 할 변화가 필요합니다 , 아무 일도 일어나지 않으며 템플릿이 TextBox tb에 적용되어 있기 때문에 나는 그것이 있다고 가정합니다.

사용자 정의하지 않고이 작업을 수행하는 방법이 올바르지 않습니까? Template/Style? (여러 컨트롤에 대해이 과정을 반복해야하며 너무 많은 스타일/템플릿을 필요로하지 않습니다.)

+0

요소의 배경을 변경한다고하면 특정 조건을 기반으로 특정 TextBox 컨트롤의 배경색을 변경하려고합니다. – MethodMan

답변

0

두 가지 방법을 사용할 수 있습니다. 접근 # 1

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

접근 # 2

난 당신이 XAML에서 텍스트 상자를 만드는 걸릴? 이 경우 텍스트 상자에 이름을 지정해야합니다. 그런 다음 코드 뒤에서 다양한 브러시를 사용하여 Background 속성을 설정할 수 있습니다. 그 중 가장 간단한은 SolidColorBrush입니다 :

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

이러한 것들은 작동하지 않는 것 같습니다 .... 배경 속성을 변경할 수없는 몇 가지 이유로 .. – Toadums

+0

이것이 작동해야합니다 .. 당신은 WPF ..도 사용하고있는 모든 관련 코드를 게시 할 수 있습니까? – MethodMan

0

이 템플릿을 보지 않고 말을 어려운,하지만 코드가 작동하지 않는 경우, 템플릿이되어 있는지 확인이없이

Background="{TemplateBinding Background}" 

을 템플릿 외부에서 배경을 설정할 수 없습니다.

관련 문제