iSMouseover在上下文Menu或验证错误上返回false?
-
05-10-2019 - |
题
我有一个控件,该控件会在使用触发器设置为true时扩展。在该控件中,有一些文本框具有一些基本的验证。我的问题是,当发生验证错误并且用户在文本框周围的红色边框上进行熔断(几乎是在用户将鼠标移动到文本框中中心以更改值的情况下发生的),ISMOUSEOVE将设置为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>
更新:当我右键单击文本框并打开上下文菜单时
解决方案
在上下文菜单的情况下,情况很清楚:这是一个不同的窗口(低级别),因此您的控件无法检测到任何“虽然”。同样,WPF中的验证错误以复杂而复杂的方式显示,并且足以说明它们也不是您控制的一部分。
我建议在您的情况下使用焦点事件;真的需要鼠标吗?可能有一些方法可以使它起作用...
不隶属于 StackOverflow