我有一些XAML标记,看起来基本上是这样的:WPF - 确定是否鼠标在的UIElement
<Canvas x:Name="A">
<Canvas x:Name="B"/>
</Canvas>
我想,以确定是否鼠标在Canvas
B.
当我点击而我的鼠标在Canvas B上,Mouse.DirectlyOver返回Canvas A(如我所料)。然后我从Canvas A获得对Canvas B的引用,但是当我检查Canvas B的IsMouseOver属性时,它将返回false。
给出上面的xaml来确定鼠标是否结束画布B的最佳方法是什么?
您使用什么事件处理来进行检查?如果我向画布B添加一个MouseUp事件,那么Mouse.DirectlyOver会返回Canvas B.也许多一些信息将有助于追踪您的问题。 – Liz 2010-12-03 17:14:33
当然。 Canvas实际上在ListBoxItem的ControlTemplate中。我正在处理列表框的选择更改事件,并执行路由事件以显示弹出式窗口,其中详细介绍了有关单击项目的信息。检查鼠标位置的代码位于路由事件处理程序中。所有这些目标都是在点击列表项的右侧部分时不显示弹出窗口。所以我试图用画布定义列表项的那一部分,然后在显示弹出框之前检查鼠标是否在项目的那一部分上。 – 2010-12-03 17:36:18
我知道还有其他方法可以做到这一点,但我试图避免使用选择更改事件以外的其他方法。 – 2010-12-03 17:38:59