UIElement.MouseMove Event

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Occurs when the coordinate position of the mouse (or stylus) changes while over a UIElement (or while a UIElement holds mouse capture).

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)


Public Event MouseMove As MouseEventHandler
public event MouseEventHandler MouseMove
<uiElement MouseMove="eventhandler"/>


Use a handler based on MouseButtonEventHandler to handle this event. For more information on how to handle mouse events, see Mouse Support.

Be careful when you write code for a MouseMove handler. MouseMove will frequently occur while the user is interacting with the application or with the specific object area that has the handler. Any computationally or graphically intensive code in a MouseMove handler can potentially introduce a noticeable lag in how the mouse pointer (or stylus pointer) draws and how the application generally behaves.

The MouseMove event can be handled for any UIElement-derived class, such as Canvas, TextBlock, or Rectangle.

The MouseMove event is raised in response to the mouse pointer (or stylus) moving across the object's content area. If the mouse pointer (or stylus) enters the object's content area, the MouseEnter event precedes the MouseMove event for the object. The MouseMove event is not raised if the mouse (or stylus) did not actually move. For instance, MouseMove is not raised if the mouse pointer (or stylus) remains stationary, and an object with a MouseMove handler has its position animated or otherwise adjusted to move under the mouse pointer.

A UIElement that has captured the mouse will receive MouseMove events for all movements of the mouse (or stylus), potentially including movement outside of the Silverlight content area. See "Mouse Capture" section of Mouse Support.

Routed Event Behavior

The MouseMove event is a bubbling event. This means that if multiple MouseMove event handlers are registered for a sequence of objects connected by parent-child relationships in the object tree, the event is received by each object in that relationship. The bubbling metaphor indicates that the event starts at the object that directly receives the input condition, and works its way up the object tree. For a bubbling event, the sender available to the event handler identifies the object where the event is handled, not necessarily the object that actually received the input condition that initiated the event. To get the object that initiated the event, use the OriginalSource value of the event's MouseEventArgs event data.

MouseMove and OnMouseMove

Controls that inherit MouseMove can provide handling for the event that acts as handler for all instances, by overriding the OnMouseMove method. As with direct handling of the event, there is no Handled property available, so OnMouseMove cannot be implemented in such a way that it suppresses further handling of the event through the Handled technique. However, OnMouseMove can be useful either for setting visual state, or for state properties and behavior related to the mouse. For instance, ButtonBase implements OnMouseMove as part of a larger behavior set that makes a button click cancellable: if the user clicks the mouse on a button but then moves the mouse pointer outside the button bounds, a click is not invoked. For more information, see OnMouseMove.

Version Information


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0


For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.