Share via

UIElement.ManipulationCompleted Event


Occurs when a manipulation on the UIElement is complete.

 virtual event ManipulationCompletedEventHandler ^ ManipulationCompleted;
// Register
event_token ManipulationCompleted(ManipulationCompletedEventHandler const& handler) const;

// Revoke with event_token
void ManipulationCompleted(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::ManipulationCompleted_revoker ManipulationCompleted(auto_revoke_t, ManipulationCompletedEventHandler const& handler) const;
public event ManipulationCompletedEventHandler ManipulationCompleted;
function onManipulationCompleted(eventArgs) { /* Your code */ }
uIElement.addEventListener("manipulationcompleted", onManipulationCompleted);
uIElement.removeEventListener("manipulationcompleted", onManipulationCompleted);
- or -
uIElement.onmanipulationcompleted = onManipulationCompleted;
Public Custom Event ManipulationCompleted As ManipulationCompletedEventHandler 
<uiElement ManipulationCompleted="eventhandler"/>

Event Type


For custom controls and interaction experiences, see GestureRecognizer.ManipulationCompleted.

An element must have a ManipulationMode value other than None or System to be a manipulation event source. The default value of ManipulationMode is System, which enables built-in control logic to process manipulations, but doesn't permit app code to handle manipulation events. If you want to handle manipulations, set ManipulationMode to All, or to specific ManipulationModes values. For more info, see ManipulationMode.

ManipulationCompleted is a routed event. If the event is permitted to bubble up to parent elements because it goes unhandled, then it is possible to handle the event on parent elements even if ManipulationMode is None or System on the parent element. For more info on the routed event concept, see Events and routed events overview.

For touch actions and also for interaction-specific or manipulation events that are consequences of a touch action, an element must be hit-test visible in order to be the event source and fire the event that is associated with the action. UIElement.Visibility must be Visible. Other properties of derived types also affect hit-test visibility. For more info, see Events and routed events overview.

ManipulationCompleted supports the ability to attach event handlers to the route that will be invoked even if the event data for the event is marked Handled. See AddHandler.

Windows 8 behavior

Windows 8 doesn't fire ManipulationCompleted in cases where the inertial phase has started (and ManipulationInertiaStarting has fired) but the user has tapped on the item before it's finished scrolling, which cancels the inertial phase visually. The issue is fixed starting with Windows 8.1; ManipulationCompleted is fired as soon as the tap action cancels the inertial phase.

Apps that were compiled for Windows 8 but running on Windows 8.1 continue to use the Windows 8 behavior.

Applies to

See also