导出 (0) 打印
全部展开
展开 最小化
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

UIElement.MouseLeftButtonDown 事件

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

命名空间:  System.Windows
程序集:  PresentationCore(在 PresentationCore.dll 中)
XAML 的 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public event MouseButtonEventHandler MouseLeftButtonDown
<object MouseLeftButtonDown="MouseButtonEventHandler" .../>

实现

IInputElement.MouseLeftButtonDown

标识符字段

MouseLeftButtonDownEvent

路由策略

直接

delegate

MouseButtonEventHandler

虽然此路由事件看似遵循沿元素树的冒泡路由,但它实际上是由每个 UIElement 沿元素树引发和重新引发的直接路由事件。

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

此事件的事件数据公开基础 Mouse.MouseDown 事件的事件数据。 如果在事件路由过程中将该事件标记为已处理,则仍会引发特定于鼠标按钮的事件;但若要侦听该事件,必须通过显式调用 AddHandler 添加特定于鼠标按钮的事件的处理程序,同时可以选择处理被标记为已处理的事件。 如果将 MouseLeftButtonDown 标记为已处理,那么实际上,您正在为沿路由以及在所有相关事件上的所有其他侦听器将 Mouse.MouseDown 标记为已处理。 这可能包括类处理程序生成的事件,如 MouseDoubleClick

从概念上说,可将此事件(以及 UIElement 上的其他鼠标按钮事件)视为鼠标“服务”(其服务定义由 Mouse 类提供)。 该事件提高了便利性,用户无需在事件数据中检查原始鼠标事件的鼠标按钮状态(左-右;释放-按下)。 对于更高级的方案(如检查非标准按钮的状态),则可能需要使用 Mouse 类(而不是 UIElement)的 API。

重要说明重要事项

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

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

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

  • 通过调用 AddHandler 并选择使处理程序侦听事件的签名选项(即使这些事件在路由事件数据中被标记为已处理也是如此),在控件上分步注册处理程序。

.NET Framework

受以下版本支持:4.5、4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

并不是.NET Framework 对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求.

社区附加资源

添加
显示:
© 2014 Microsoft