导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

UIElement.MouseLeftButtonUp 事件

当鼠标(或触笔)悬停在 UIElement 上(或 UIElement 具有鼠标捕获)并且用户松开鼠标左键(或从 Tablet 上移开触笔的笔尖)时发生。

命名空间:  System.Windows
程序集:  System.Windows(在 System.Windows.dll 中)

public event MouseButtonEventHandler MouseLeftButtonUp
<uiElement MouseLeftButtonUp="eventhandler"/>

使用基于 MouseButtonEventHandler 的处理程序处理此事件。 有关如何处理鼠标事件的更多信息,请参见鼠标支持

在鼠标指针悬停于对象上并且用户按下鼠标左键时引发 MouseLeftButtonDown 事件。 松开鼠标按钮(或从 Tablet PC 移开触笔笔尖)时引发 MouseLeftButtonUp 事件。 如果在松开按钮时鼠标指针(或触笔)移到其他对象上,则接收了 MouseLeftButtonDown 事件的对象将不一定接收 MouseLeftButtonUp 事件。 但是,如果您通过调用 CaptureMouse 使该对象发起鼠标捕获,则可以继续从发生 MouseLeftButtonDownUIElement 角度接收 MouseMoveMouseLeftButtonUp 等鼠标事件。 如果捕获鼠标,一般通过对事件的 sender 调用 ReleaseMouseCapture,将从具有捕获的对象释放鼠标捕获作为 MouseLeftButtonUp 处理的一部分。 总之将失去鼠标捕获,因为在按下鼠标左键时仅由输入系统保留鼠标捕获。 通常仅在鼠标指针(或触笔)位于 Silverlight 插件内容区域时,鼠标捕获与鼠标事件才相关。 但是,如果鼠标指针(或触笔)退出后重新进入 Silverlight 插件内容区域,只要鼠标左键仍被按下,就保持鼠标捕获状态。 而且,如果在对象具有捕获时松开鼠标按钮,即使鼠标指针完全位于承载浏览器之外(尽管这一特殊情况可能不能被所有浏览器和平台准确报告),鼠标指针也可以从 MouseLeftButtonUp 报告它在总体屏幕坐标空间中的位置。

不存在离散的双击事件。 一个双击事件由两个连续的 MouseLeftButtonDown 事件和 MouseLeftButtonUp 事件构成。

路由事件行为

MouseLeftButtonUp 事件是一种冒泡事件。 这意味着,如果为由对象树中的父-子关系所连接的一系列对象注册了多个 MouseLeftButtonUp 事件处理程序,则事件将由该关系中的每个对象接收。 冒泡比喻表示,事件在直接接收输入条件的对象上启动,然后沿对象树向上传递。 对于冒泡事件,可用于事件处理程序的 sender 标识处理该事件时所用的对象,而不必标识实际接收发起该事件的输入条件的对象。 若要获取发起该事件的对象,请使用事件的 RoutedEventArgs 事件数据的 OriginalSource 值。

MouseLeftButtonUp 和 OnMouseLeftButtonUp

继承 MouseLeftButtonUp 的控件可以通过重写 OnMouseLeftButtonUp 方法来处理充当所有实例的处理程序的事件。 这可能包括将事件的 Handled 值标记为 true,这一标记将导致取消针对控件的任意实例(有时可能是控件的任意子类)的 MouseLeftButtonUp 事件。 例如,ButtonBase 这样实现 OnMouseLeftButtonUp 以便鼠标左键释放鼠标捕获。 该实现还设置 Handled,这将防止将鼠标按钮操作报告为可由按钮实例处理的 MouseLeftButtonUp 事件。 由于 Click 事件对于实现控件的预期目的更有意义,因此将这样做。 有关更多信息,请参见 OnMouseLeftButtonUp

还可以注册处理程序,以便即使是针对已处理的路由事件,也会调用这些处理程序。 有关更多信息,请参见 AddHandler

Silverlight

受以下版本支持:5、4、3

Silverlight for Windows Phone

受以下版本支持:Windows Phone OS 7.1、Windows Phone OS 7.0

有关 Silverlight 支持的操作系统和浏览器的列表,请参见 支持的操作系统和浏览器

社区附加资源

添加
显示:
© 2014 Microsoft