我正在使用.net 4 beta 2触摸库,我试图在我的WPF应用程序中实现缩放功能。
我可以让缩放工作正常,但我想要的是放大捏手势的中心,我在API中看不到有关如何实现这一点的任何内容。
是否有一些方法或属性可以揭示在捏合手势中使用的2个联系人,以便我可以获得它们的中心?
修改
我刚刚使用GetIntermediateTouchPoints
的{{1}}方法进行了调查,这种方法似乎没有给我我想要的东西。
非常感谢 标记
答案 0 :(得分:0)
假设您使用的是新的TouchXxxxEvent
路由事件,它们都会使用TouchEventArgs
属性TouchDevice
。如果您调用GetTouchPoint()
方法,则可以获得代表触摸点的TouchPoint
。
来自Jaime Rodriguez的更多details and sample code。
答案 1 :(得分:0)
事实证明,我所追求的属性一直都在我面前。
Manipulation2DDeltaEventArgs
类具有OriginX
和OriginX
属性,这些属性特定于捏合手势的中心点,所以我只是使用它并且一切都很好:)
答案 2 :(得分:0)
这个答案适用于.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;
...
}