我有一个控件,当IsMouseOver使用触发器设置为true时会扩展。在该控件中,有一些文本框具有一些基本验证。我的问题是,当发生验证错误并且用户将鼠标悬停在文本框周围的红色边框上时(几乎保证在用户将鼠标移动到文本框的中心以更改值时发生),IsMouseOver将设置为false并且控件关闭
文本框的验证错误:
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
Path=(Validation.Errors)[0].ErrorContent,
RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>
</Style.Triggers>
</Style>
触发显示控件:
<DataTrigger Binding="{Binding ElementName=TabControl_TabPanel, Path=IsMouseOver}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
更新 当我右键单击文本框并打开上下文菜单时,IsMouseOver也设置为False
答案 0 :(得分:0)
在上下文菜单的情况下,事情很清楚:它是一个不同的窗口(在低级别),所以你的控件不可能检测到任何'虽然'它。同样地,WPF中的验证错误以复杂且复杂的方式显示,并且足以说它们实际上也不是您控制的一部分。
我建议为你的场景使用焦点事件;鼠标悬停真的需要吗?可能有一些方法可以使它工作......