2009-06-20 176 views
1

我知道每个控件都有一个鼠标单击事件,但有没有方法可以确定鼠标单击不在控件上?WPF鼠标单击事件

+0

1.不,每个控件都没有鼠标点击事件。只有逻辑上可点击的内容 - 例如按钮,复选框,菜单项,超链接 - 具有Click事件。其他控件,如TextBoxes和Images,则不会。如果您想要其他可点击的内容 - 例如一个图像 - 那么你应该重新设计一个按钮。 2.如果点击不在控件X上,则控件X将不会收到通知 - 控件Y(您实际*已经*点击的那个)获取该事件。 – 2009-06-20 23:05:10

回答

1

您可以使用this code查找窗口上的所有控件或目标类型的可视元素并处理它的鼠标事件。

0

您可以检查IsMouseOver是否为false,并且如果您想要在IsMouseOver == false时挂钩操作,则可以覆盖该dp的元数据。

0

您可以调用CaptureMouse,然后该对象将接收所有鼠标事件。然后,您可以从鼠标点确定它是否在您的控制范围内。或者您可以听取LostMouseCapture事件。

0

这不会为Click事件工作(因为没有隧道的版本,只有冒泡版),但你可以在Window类处理路由PreviewMouseLeftButtonDown和检查,看看是否在目标控制在热播树。