UIElement.MouseLeftButtonDown 事件

定义

在鼠标指针位于此元素上并且按下鼠标左键时发生。

public:
 virtual event System::Windows::Input::MouseButtonEventHandler ^ MouseLeftButtonDown;
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;
member this.MouseLeftButtonDown : System.Windows.Input.MouseButtonEventHandler 
Public Custom Event MouseLeftButtonDown As MouseButtonEventHandler 

事件类型

实现

注解

尽管此 路由事件 似乎遵循通过元素树的浮升路由,但它实际上是一个直接路由事件,每个 会沿着 UIElement元素树引发和重新引发。

此事件是报告基础 Mouse.MouseDown 事件的鼠标按钮特定事件的几个相关事件之一,该事件是一个附加事件,由事件路由中的每个元素处理。

此事件的事件数据公开基础 Mouse.MouseDown 事件的事件数据。 如果该事件被标记为沿事件路由进行处理,则仍会引发特定于鼠标按钮的事件;但是,必须通过显式调用 AddHandler来添加鼠标按钮特定事件的处理程序,以及用于处理已标记为已处理的事件的选项,才能成为事件的侦听器。 如果标记为 MouseLeftButtonDown “已处理”,则实质上是为路由上所有后续侦听器以及所有相关事件标记 Mouse.MouseDown 已处理。 这可能包括类处理程序生成的事件,例如 MouseDoubleClick

从概念上讲,将此事件 (和) 上的 UIElement 其他鼠标按钮事件视为具有类) 提供的服务 Mouse 定义的鼠标“服务” (。 事件增加了无需检查鼠标按钮状态的便利性, (事件数据中原始鼠标事件的左-右、上下) 。 对于更高级的方案(例如检查非标准按钮的状态),可能需要使用 类上的 Mouse API,而不是 上的 UIElementAPI。

重要

某些控件类可能具有针对鼠标按钮事件的固有类处理。 鼠标左键向下事件是在控件中具有类处理的最有可能的事件。 类处理通常将基础 Mouse 类事件标记为已处理。 标记处理事件后,通常不会引发附加到该元素的其他实例处理程序。 通常也不会引发附加到 UI 树中根的浮升方向元素的任何其他类或实例处理程序。

可以使用以下任一解决方案解决上述重要内容中概述的问题,并且仍可接收 MouseLeftButtonDown 具有类处理的派生类上的鼠标左键向下事件的事件:

  • PreviewMouseDown 事件附加处理程序,该事件未标记为由控件处理。 请注意,由于这是预览事件,因此路由从根开始,并向下隧道连接到控件。

  • 通过调用 AddHandler 并选择签名选项,在控件上注册处理程序,即使这些事件已在路由事件数据中标记为已处理,也允许处理程序侦听事件。

路由事件信息

标识符字段 MouseLeftButtonDownEvent
路由策略 直接
委托 MouseButtonEventHandler

适用于

另请参阅