我在我的ViewModel中实现idataerrorinfo来对我的一些绑定属性执行验证。然后我尝试使用以下方法来设置tooltip并自动显示它:WPF ToolTip Trigger Not Working
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self},Path=(Validation.Errors)[0].ErrorContent}"/>
<Setter Property="ToolTip.IsOpen" Value="True"></Setter>
<Setter Property="ToolTip.StaysOpen" Value="True"></Setter>
<Setter Property="ToolTip.Placement" Value="Bottom"></Setter>
</Trigger>
</Style.Triggers>
</Style>
的问题是,虽然tooltip正在建立它不会出现,除非我把我的光标移到输入。我想在验证失败时自动显示工具提示。
我可以想出很多方法来验证数据,但我正在寻找一种精简,易重复使用的解决方案,并且不会混淆我的其他代码(和UI)。如果有更好的方法要做到这一点,然后我喜欢听到它。
干杯
为什么不使用'Validation.ErrorTemplate'它会转到Adorned层并且不会影响总体布局。如果你的游标强制显示一个文本框错误的工具提示,那么它实际上位于一个按钮或UI中的其他位置,所以ToolTip不是很友好。 – Viv