UIElement3D.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 

事件类型

实现

注解

尽管此 路由事件概述 似乎遵循通过元素树的冒泡路由,但它实际上是一个直接路由事件,由每个 UIElement3D引发并沿元素树重新引发。

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

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

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

重要

类处理通常将基础 Mouse 类事件标记为已处理。 将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。 通常也不会引发附加到 UI 树中根的浮升方向元素的任何其他类或实例处理程序。

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

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

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

MouseLeftButtonDown在 .NET Framework 版本 3.5 中引入。 有关详细信息,请参见版本和依赖关系

路由事件信息

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

适用于

另请参阅