我正在尝试管理多点触控。因此,我正在尝试分离触摸的行为。假设用户想要缩放他们的图片,他们需要捏合以进行缩放。然而,两个触摸点之间距离过远时将无法缩放,如下图所示:
我该如何分离它?是否有任何函数可以实现这一点?
敬礼, C.Porawat
![enter image description here](https://istack.dev59.com/wNiD9.webp)
敬礼, C.Porawat
这是关于区分单手和双手缩放操作,还是关于对操纵对象强制施加某些最小/最大缩放因子的问题?
在第一种情况下,这是不可靠的。据我所知,触点不携带可识别信息,无法告诉你一个手的手指与另一个手的手指有何不同。正如Cody所指出的那样,这也不适用于缩放手势。
然而,我认为您真正想要实现的是防止用户将对象缩放到极端尺寸。由于您接收到的ManipulationDelta
事件(在您的情况下优先于原始触摸事件,因为您需要自己推导出增量变换矩阵/缩放因子)公开了一个DeltaManipulation.Scale
属性,您应该能够检查此属性以及操纵对象的当前比例因子(由对象变换矩阵的行向量的大小指定;我不记得是否有方便的函数可以为您检索它?)来强制实施最小/最大缩放因子。
甚至可能有一些操纵处理器或UIElement
已经为您预先构建了相应的边界。