简体   繁体   中英

WPF 4 touch events getting the center of a pinch gesture

I am using the .net 4 beta 2 touch libraries, and Im trying to implement a zooming feature in my WPF application.

I can get the zooming working just fine, but what I want is to zoom in on the center of the pinch gesture, and I cannot see anything in the API's about how to accomplish this.

Is there some methods or properties that expose the 2 contacts being using in the pinch gesture so that I can get the center of them?

EDIT:

I just investigated using the GetIntermediateTouchPoints method of TouchEventArgs which did not seem to give me what I want.

Thanks a lot Mark

This answer is for .Net 4 release version.

In the case of using ManipulationDelta event the ManipulationDeltaEventArgs.ManipulationOrigin contains center point of the pinch gesture. The coordinates are relative to the ManipulationDeltaEventArgs.ManipulationContainer , which could be set in the handler of ManipulationStarting event.

Example code:

private void object_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    ...
    // If this was a multitouch gesture 
    // (like pinch/zoom - indicated by e.DeltaManipulation.Scale)
    // the following line will get us point between fingers.
    Point position = e.ManipulationOrigin;
    ...
}

Assuming you are using the new TouchXxxxEvent routed events, they all take TouchEventArgs , which has TouchDevice property. If you call its GetTouchPoint() method, you can get the TouchPoint that represents the point of touch.

More details and sample code from Jaime Rodriguez.

Turns out that the properties I was after was right in front of me all along.

the Manipulation2DDeltaEventArgs class has OriginX and OriginX properties that specific the center point of the pinch gesture, so Im just using that and its all good :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM