Assembly: System.Windows (in System.Windows.dll)
Be careful when you write code for a handler. 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 handler can potentially introduce a noticeable lag in how the mouse pointer (or stylus pointer) draws and how the application generally behaves.
The 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 event for the object. The event is not raised if the mouse (or stylus) did not actually move. For instance, is not raised if the mouse pointer (or stylus) remains stationary, and an object with a handler has its position animated or otherwise adjusted to move under the mouse pointer.
A UIElement that has captured the mouse will receive 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 event is a bubbling event. This means that if multiple 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 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.