2011-01-31 25 views
0

내 텍스트 상자에 유효성 검사 오류가있는 경우 표시되는 ControlTemplate을 만들었습니다. 내 컨트롤 템플릿은 다음과 같습니다.ControlTemplate 및 유효성 검사 - 항목을 배치하는 방법?

<ControlTemplate x:Key="TextBoxErrorTemplate"> 
    <TextBlock Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock> 
</ControlTemplate> 

유효성 검사 오류가 발생하면 textBox가 textBox에 표시되고 사용자가 적절한 값을 입력 할 수 없습니다. 오류 정보를 표시하는 TextBlock의 위치를 ​​설정할 수있는 방법이 있습니까?

답변

2

ErrorTemplates가 내부 속성을 변경하기위한 컨트롤을 장식하는하지를 위해, 당신은 각각의 트리거 스타일을 사용해야하는이 작업을 수행합니다 : 일부 텍스트 템플릿을 사용할 수를 표시하려면

  <Style TargetType="TextBox"> 
       <Style.Triggers> 
        <Trigger Property="Validation.HasError" Value="True"> 
         <Setter Property="Foreground" Value="Orange"/> 
         <Setter Property="FontSize" Value="12"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 

이렇게 :

<ControlTemplate x:Key="TextBoxErrorTemplate"> 
     <StackPanel Orientation="Horizontal"> 
      <AdornedElementPlaceholder/> 
      <TextBlock Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock> 
     </StackPanel> 
    </ControlTemplate> 

텍스트 상자 오른쪽에 TextBlock이 표시됩니다.

그냥 오류 메시지를 표시하려면 TextBox의 툴팁을 설정하고 유효성 검사 오류에 바인딩하는 것이 좋습니다.

+0

설명이 태그 에 여는 태그가 없습니다.이 태그를 닫고있는 것으로 보입니다 – lastOfMohicans

+0

http://msdn.microsoft.com/en-us/library/system.windows.controls.adornedelementplaceholder .aspx –