2010-06-23 11 views
6

WPF 응용 프로그램에 대한 사용자 정의 유효성 검사기 템플릿을 만들고 싶습니다.툴팁이있는 WPF 사용자 정의 유효성 검사기

<ControlTemplate x:Key="ToolTipTemplate" TargetType="ToolTip"> 
     <Grid Opacity="0.93" MaxWidth="200"> 
      <Border BorderBrush="Black" BorderThickness="1,1,1,1" CornerRadius="2"> 
       <Border.Background> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="#FFF5FAFE" Offset="0"/> 
         <GradientStop Color="#FFE5EFF9" Offset="1"/> 
        </LinearGradientBrush> 
       </Border.Background> 
       <Border.Effect> 
        <DropShadowEffect Color="#FF393939" /> 
       </Border.Effect> 
       <TextBlock Margin="10,10,10,10" 
        VerticalAlignment="Top" 
        TextWrapping="Wrap" 
        HorizontalAlignment="Left" 
        Text="{TemplateBinding Content}"> 
       </TextBlock> 
      </Border> 
     </Grid> 
    </ControlTemplate> 

검증을위한 또 다른 템플릿 :

<ControlTemplate x:Key="GlobalErrorTemplate"> 
     <DockPanel> 
      <Ellipse x:Name="PART_icon" 
       DockPanel.Dock="Right" 
       Margin="2,0" 
       Width="10" Height="10"> 
       <Ellipse.Fill> 
        <LinearGradientBrush> 
         <GradientStop Color="#11FF1111" Offset="0" /> 
         <GradientStop Color="#FFFF0000" Offset="1" /> 
        </LinearGradientBrush> 
       </Ellipse.Fill> 
       <Ellipse.ToolTip> 
        <ToolTip Template="{StaticResource ToolTipTemplate}" />       
       </Ellipse.ToolTip> 
      </Ellipse> 
      <AdornedElementPlaceholder x:Name="adorner" /> 
     </DockPanel> 
    </ControlTemplate> 

그리고 컨트롤의 스타일, 예 : 수 내가 툴팁을 설정하는 방법

<Style TargetType="TextBox"> 
     <Setter Property="Validation.ErrorTemplate" Value="{StaticResource GlobalErrorTemplate}"/> 
     <!--<Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" /> 
      </Trigger> 
     </Style.Triggers>--> 
    </Style> 

나는 툴팁 템플릿을 타원의 (Validation.Errors) [0] .ErrorContent?

감사합니다,

답변

7

방금 ​​귀하의 도구 설명을 정의 할 수 있도록 ErrorTemplate의 DataContext를가 이미 Validation.Errors의 값입니다 마트 :

<ToolTip Template="{StaticResource ToolTipTemplate}" Content="{Binding Path=[0].ErrorContent}" /> 
관련 문제