如何在WPF文本框中删除多余的边框?

时间:2019-10-14 15:06:03

标签: wpf binding textbox border extern

我对WPF TextBox有问题。我有一个带有ItemsControl控件的TextBox控件,该控件绑定到某些ViewModel中的double属性。对于这些TextBox控件,我有一个DataTrigger

<DataTrigger Binding="{c:Binding 'IsCorrect'}" Value="False">
      <Setter Property="BorderThickness" Value="5"/>
      <Setter Property="BorderBrush" Value="GreenYellow"/>
      <Setter Property="Background" Value="#FFD2D2"/>
</DataTrigger>

如果输入了错误的数字,它将更改BorderThickness中的BorderBrushBackgroundTextBox。 但是,如果我从TextBox中删除所有文本,它将不会将数据设置为绑定属性,也不会更改BorderThicknessBorderBrush属性,并且如果已经设置了DataTrigger样式,将有第二个边界,这是{​​{1}}制成的边界的外部边界。

结果图片:

Screenshot of the result

图像DataTrigger's的边界由GreenYellow设置,DataTrigger外部边界由自身设置。

所以问题是-这个外部边界是什么?以及如何将其删除?!

1 个答案:

答案 0 :(得分:0)

  

所以问题是-这个外部边界是什么?

它是默认Validation.Error模板的一部分。

  

以及如何删除它?!

定义一个自定义的空Validation.Error模板:

<TextBox>
    <Validation.ErrorTemplate>
        <ControlTemplate />
    </Validation.ErrorTemplate>
</TextBox>

或者在Style中:

<Style TargetType="TextBox">
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate />
        </Setter.Value>
    </Setter>
</Style>