UserControl的验证错误模板

Lui*_*lar 10 wpf

我已经构建了一个UserControl.当验证错误发生时,我不喜欢它周围显示的红色边框.我的控件里面有一个文本框.

如何覆盖验证错误样式以摆脱整个控件中的红色边框,并在usercontrol中的文本框中显示红色背景?

谢谢!

Niv*_*kia 5

我正在使用此模板,它将为文本框的背景着色,而不是仅显示边框.

 <UserControl.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true" >
                <Setter Property="Foreground" Value="Red"/>
                <Setter Property="Background" Value="MistyRose"/>
                <Setter Property="BorderBrush" Value="Red"/>
                <Setter Property="BorderThickness" Value="1.0"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource 
                 Self},Path=(Validation.Errors)[0].ErrorContent}"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

我只需要对你的DocPannel进行操作,例如我在DockPanel中找到控件的位置,然后我必须将其Validation.Error模板设置为空,否则将删除边框.

对于Ex:

    <TextBox >
       <Validation.ErrorTemplate>
         <ControlTemplate>
         </ControlTemplate>
       </Validation.ErrorTemplate>
     </TextBox>
Run Code Online (Sandbox Code Playgroud)