UIElement.MouseLeftButtonDown 事件

定义

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

C#
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;

事件类型

实现

注解

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

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

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

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

重要

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

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

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

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

路由事件信息

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

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另请参阅