July 28, 2014System.Windows
Assembly: System.Windows (in System.Windows.dll)
XMLNS for XAML: Not mapped to an xmlns.
The MouseLeftButtonDown event is raised when the object is tapped. When the finger that taps the object is lifted, the event is raised. If the finger is moved over another object when the button is released, the object that received the MouseLeftButtonDown event will not necessarily receive the event. However, you can continue to receive touch events such as MouseMove and from the perspective of the UIElement where MouseLeftButtonDown occurred, if you have that object initiate touch capture by calling CaptureMouse. If the touch is captured, it is generally a good idea to release touch capture from the object that holds capture as part of your handling for , by calling ReleaseMouseCapture on the sender of the event.
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 RoutedEventArgs event data.
MouseLeftButtonUp and OnMouseLeftButtonUp
Controls that inherit can provide handling for the event that acts as handler for all instances, by overriding the OnMouseLeftButtonUp method. This might include marking the Handled value of the event as true, which has the effect of suppressing the event on any instance of the control (and potentially any subclass of the control). The implementation also sets Handled, which prevents touch actions from being reported as a event that could be handled by a button instance. This is done because the Click event is more meaningful for the control's intended purpose. For more information, see OnMouseLeftButtonUp.
You can also register handlers such that they are invoked even for already-handled routed events. For more information, see AddHandler.