gpt4 book ai didi

c# - 如何使工具提示具有圆角 - WPF

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:21 31 4
gpt4 key购买 nike

我创建了一个小型 WPF 应用程序,页面上有许多文本框。所有这些文本框都有圆角。

我使用了 MVVM 模式并实现了 IDataErrorInfo 接口(interface)来向用户显示错误。当其中一个文本框的边缘为空时,工具提示应显示为红色,我已成功完成。

我现在希望红色边缘也像文本框一样具有圆角。如图所示,红色边框显示为 TextBox 为空,红色边框需要有圆角半径。

Red border shown here

<!-- 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>

最佳答案

您可以为错误创建特定的工具提示样式:

这里是一个带有 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>

关于c# - 如何使工具提示具有圆角 - WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51611245/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com