我正在使用.NET 4 beta 2触摸库,并试图在我的WPF应用程序中实现缩放功能。WPF 4触摸事件获取捏手势的中心
我可以使缩放工作得很好,但我想要的是放大缩小手势的中心,并且我看不到有关如何完成此操作的API中的任何内容。
是否有一些方法或属性,暴露在捏手势中使用的2个联系人,以便我可以得到他们的中心?
编辑:
我只是用的TouchEventArgs
的GetIntermediateTouchPoints
方法,它似乎并没有给我我想要什么样的影响。
非常感谢 马克
我正在使用.NET 4 beta 2触摸库,并试图在我的WPF应用程序中实现缩放功能。WPF 4触摸事件获取捏手势的中心
我可以使缩放工作得很好,但我想要的是放大缩小手势的中心,并且我看不到有关如何完成此操作的API中的任何内容。
是否有一些方法或属性,暴露在捏手势中使用的2个联系人,以便我可以得到他们的中心?
编辑:
我只是用的TouchEventArgs
的GetIntermediateTouchPoints
方法,它似乎并没有给我我想要什么样的影响。
非常感谢 马克
原来我以前的属性一直在我的面前。
的Manipulation2DDeltaEventArgs
类有OriginX
和OriginX
性质特定缩放手势的中心点,所以我只是使用其所有好的:)
假设你正在使用的新TouchXxxxEvent
路由事件,他们都采取TouchEventArgs
,其中有TouchDevice
财产。如果您拨打GetTouchPoint()
方法,则可以获取代表触摸点的TouchPoint
。
更多details and sample code来自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;
...
}
我使用此刻的'TouchDown'事件,但使用'ManipulationDelta'的实际操纵林。我可以看到'GetIntermediateTouchPoints'方法,这可能是在这里后im ... – Mark
不是那种方法似乎没有做我想做的事情,所以现在我可能不得不跟踪接触,然后计算两者之间的距离他们...难看! – Mark