我正在使用拖动手势在画布上移动元素。我正在使用捏合手势来缩放/平移画布的大小。我现在要做的是根据两根手指在紧要关头的移动来移动整个画布。我知道我可以通过移动来做到这一点,但我需要画布本身的项目,有时整个画布上都覆盖着可以移动的项目,所以你无法选择画布来移动它。
PinchGestureEventArgs 可以做到这一点吗?
我正在使用拖动手势在画布上移动元素。我正在使用捏合手势来缩放/平移画布的大小。我现在要做的是根据两根手指在紧要关头的移动来移动整个画布。我知道我可以通过移动来做到这一点,但我需要画布本身的项目,有时整个画布上都覆盖着可以移动的项目,所以你无法选择画布来移动它。
PinchGestureEventArgs 可以做到这一点吗?
我相信你很久以前就解决了这个问题,但我最近自己也在做类似的事情:
在 PinchDelta 事件中,您会收到一个 PinchGestureEventArgs。
您可以对事件使用 GetPosition 方法来发现两个手指的位置(传递 index 第二个参数),尽管在这种情况下您只需要第一根手指。
通过检查 DistanceRatio 表明手指之间的距离自捏合开始后没有太大变化,您可以检查这是拖动还是捏合,并根据 GetPosition() 报告的位置移动画布。
您需要保持一些状态,以记住您处理的最后一个位置,以便您可以计算增量。