我创建了一个小型WPF应用程序,并且页面上有许多TextBoxes。所有这些TextBox都有圆角。
我已使用MVVM模式并实现了IDataErrorInfo接口,以向用户显示错误。当其中一个文本框为空时,工具提示应该显示为红色,这是我成功完成的。
我现在希望红色边缘也具有圆角,例如TextBoxes。如图所示,红色边框显示为TextBox为空,红色边框必须具有拐角半径。
<!-- Text box xaml code that is used to display the error and binding -->
<TextBox Style="{StaticResource TextBoxBase}"
Name="FirstName"
Text="{Binding FirstName, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Source={StaticResource CustomerObject}, ValidatesOnDataErrors=True}"/>
<!-- Code that changes the tool tip if it's null -->
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}" />
</Trigger>
</Style.Triggers>
答案 0 :(得分:0)
您可以为错误创建特定的工具提示样式:
下面是带有 CornerRadius =“ 4” 的自定义工具提示样式的示例:
<Style x:Key="ErrorRoundedTooltip" TargetType="ToolTip">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="HasDropShadow" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<Border Name="Border" CornerRadius="4"
BorderThickness="1"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}">
<ContentPresenter Margin="4" HorizontalAlignment="Left" VerticalAlignment="Top" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Content">
<Setter.Value>
<ItemsControl ItemsSource="{Binding Path=(Validation.Errors)}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ErrorContent.ValidationMessage}" VerticalAlignment="Center"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Setter.Value>
</Setter>
</Style>
<ToolTip x:Key="ErrorRepository" Style="{StaticResource ErrorRoundedTooltip}" />
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{StaticResource ErrorRepository}" />
</Trigger>
</Style.Triggers>
</Style>