ManipulationProcessor2D Class

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Implements a multiple-input, single-output compositor for two-dimensional (2-D) transformations in a shared coordinate space.

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


public class ManipulationProcessor2D


Creates a new ManipulationProcessor2D object.

System_CAPS_pubmethodManipulationProcessor2D(Manipulations2D, ManipulationPivot2D)

Creates a new ManipulationProcessor2D object.


Gets or sets the minimum radius, in coordinate units, necessary for a manipulator to participate in scaling and rotation.


Gets or sets the pivot information for the manipulation processor.


Gets or sets the current set of supported manipulations.


Forces the current manipulation to complete and raises the Completed event.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodProcessManipulators(Int64, IEnumerable<Manipulator2D>)

Processes the specified manipulators as a single batch action.


Sets parameters on the manipulation processor.


Returns a string that represents the current object.(Inherited from Object.)


Occurs when a manipulation has competed.


Occurs when the manipulation origin has changed or when translation, scaling, or rotation have occurred.


Occurs when a new manipulation has started.

A ManipulationProcessor2D object treats a collection of manipulators as a composite object. Your application is then freed from the necessity of tracking and managing individual manipulators.

A manipulation processor by itself does not cause an element to move. Your application begins a manipulation as necessary, and then receives information from a manipulation processor by listening to the Started, Delta and Completed events. The values received via these events enable you to change the location, size or orientation of an element as needed.

You inform a manipulation processor which types of manipulations are allowed (translate, scale, rotate) by setting the SupportedManipulations property. You can then provide non-conditional logic to the transformation of the element that is being manipulated. For instance, instead of checking if rotation is enabled before changing the orientation of an element, you can unconditionally apply the rotation factor received from the manipulation processor; if rotation is not enabled, the manipulation processor will report that no rotational change has occurred.

When an element that is being manipulated is released (all manipulators are removed), you can use inertia processing to simulate friction and cause the element to gradually slow its movements before coming to a stop. For more information see the InertiaProcessor2D class.

.NET Framework
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top