此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

UIElement.MouseMove 事件

当鼠标(或触笔)的坐标位置更改并且悬停在 UIElement 上(或 UIElement 具有鼠标捕获)时发生。

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

public event MouseEventHandler MouseMove
<uiElement MouseMove="eventhandler"/>

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

当您对于 MouseMove 处理程序编写代码时,请务必小心。 当用户正在与应用程序或与具有此处理程序的特定对象区域交互时,MouseMove 事件将频繁地发生。 MouseMove 处理程序中的任何计算或图形密集型代码对于鼠标指针(或触笔指针)的绘制方式和应用程序的一般行为可能会产生明显的延迟。

可为任意 UIElement 派生类(例如 CanvasTextBlockRectangle)处理 MouseMove 事件。

将引发 MouseMove 事件以响应鼠标指针(或触笔)跨对象内容区域的移动。 如果鼠标指针(或触笔)进入对象的内容区域,将在该对象的 MouseMove 事件之前发生 MouseEnter 事件。 如果鼠标(或触笔)实际未移动,则不会引发 MouseMove 事件。 例如,如果鼠标指针(或触笔)保持静态,则不引发 MouseMove,并且具有 MouseMove 处理程序的对象对其位置进行动画处理或调整其位置以移到鼠标指针之下。

已捕获鼠标的 UIElement 将接收针对鼠标(或触笔)的所有移动的 MouseMove 事件,可能包括 Silverlight 内容区域之外的移动。 请参见鼠标支持中的"鼠标捕获"部分。

路由事件行为

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

MouseMove 和 OnMouseMove

继承 MouseMove 的控件可以通过重写 OnMouseMove 方法来处理充当所有实例的处理程序的事件。 与直接处理事件一样,没有可用的 Handled 属性,因此不能这样实现 OnMouseMove 以使它通过 Handled 方法取消事件的进一步处理。 但是,OnMouseMove 对于设置可视状态或与鼠标有关的状态属性和行为很有用。 例如,ButtonBaseOnMouseMove 作为使按钮单击可取消的更大行为集的一部分来实现:如果用户单击鼠标按钮然后将鼠标指针移出按钮边界,则不调用单击。 有关更多信息,请参见 OnMouseMove

Silverlight

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

Silverlight for Windows Phone

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

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

社区附加资源

添加
Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2015 Microsoft