我正在使用 .net 4 beta 2 触摸库,并且试图在我的 WPF 应用程序中实现缩放功能。
我可以让缩放工作得很好,但我想要的是放大捏合手势的中心,而我在 API 中看不到任何关于如何完成此操作的内容。
是否有一些方法或属性可以暴露在捏合手势中使用的 2 个联系人,以便我可以得到它们的中心?
编辑:
我只是使用似乎没有给我想要的方法的GetIntermediateTouchPoints
方法进行调查。TouchEventArgs
非常感谢马克
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 :)
假设您正在使用新的TouchXxxxEvent
路由事件,它们都TouchEventArgs
具有TouchDevice
属性。如果你调用它的GetTouchPoint()
方法,你可以得到TouchPoint
代表触摸点的那个。
Jaime Rodriguez 提供的更多详细信息和示例代码。
此答案适用于 .Net 4 发行版。
在使用ManipulationDelta
事件的情况下,ManipulationDeltaEventArgs.ManipulationOrigin
包含捏合手势的中心点。坐标是相对于 的ManipulationDeltaEventArgs.ManipulationContainer
,可以在ManipulationStarting
事件的处理程序中设置。
示例代码:
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;
...
}