Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF如何将文本框周围的红色矩形更改为带感叹号的红色圆圈_C#_Xaml_Wpf Controls_Errorprovider - Fatal编程技术网

C#WPF如何将文本框周围的红色矩形更改为带感叹号的红色圆圈

C#WPF如何将文本框周围的红色矩形更改为带感叹号的红色圆圈,c#,xaml,wpf-controls,errorprovider,C#,Xaml,Wpf Controls,Errorprovider,我有一个文本框,它连接到一个类属性 <TextBox Name="txtbSleeveLength" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" Height="23" Margin="1" Text="{Binding Path=Sleeve

我有一个
文本框
,它连接到一个类属性

<TextBox Name="txtbSleeveLength"   
         Grid.Row="0" 
         Grid.Column="1" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Center" 
         Height="23" Margin="1" 
         Text="{Binding Path=SleeveLength, StringFormat=N2}" 
         Width="120" 
         TextAlignment ="Center" 
         GotFocus="txtbSleeveLength_GotFocus" />
}

由于属性不可为null,因此会产生两种效果。开头的
文本框
中有“0.00”,如果未满足
文本框
的要求,文本框周围会出现一个红色矩形

现在提问
哪个
TextBox
属性负责此矩形(如果存在)?我听说有
ErrorProvider
。它可以在XAML标记中用于获取异常并将矩形更改为带感叹号的红色圆圈吗

解决方案可以使用边框和样式

    <Border BorderBrush="Red" >
            <Border.Style>
                <Setter Property="BorderThickness" Value="0"/>
                <Style TargetType="Border">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding SleeveLength}" Value="0">
                            <Setter Property="BorderThickness" Value="2"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
            <TextBox ...></TextBox>
        </Border>

通过添加Validation.ErrorTemplate=“{x:Null}”()我收到了文本框周围不再显示矩形的消息。但它不是我问题的答案。
    <Border BorderBrush="Red" >
            <Border.Style>
                <Setter Property="BorderThickness" Value="0"/>
                <Style TargetType="Border">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding SleeveLength}" Value="0">
                            <Setter Property="BorderThickness" Value="2"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
            <TextBox ...></TextBox>
        </Border>