ドラッグ ジェスチャを使用して、キャンバス上の要素を移動しています。ピンチ ジェスチャを使用して、キャンバスのサイズをズーム/移動しています。今やりたいことは、ピンチで両指の動きを元にキャンバス全体を動かすことです。移動でこれを行うことができることはわかっていますが、キャンバス自体のアイテムにはそれが必要であり、キャンバス全体がアイテムで覆われているため、キャンバスを選択して移動できません。
これは PinchGestureEventArgs で可能ですか?
ドラッグ ジェスチャを使用して、キャンバス上の要素を移動しています。ピンチ ジェスチャを使用して、キャンバスのサイズをズーム/移動しています。今やりたいことは、ピンチで両指の動きを元にキャンバス全体を動かすことです。移動でこれを行うことができることはわかっていますが、キャンバス自体のアイテムにはそれが必要であり、キャンバス全体がアイテムで覆われているため、キャンバスを選択して移動できません。
これは PinchGestureEventArgs で可能ですか?
あなたはずっと前にこれを解決したと確信していますが、私は最近自分で似たようなことをしていました:
PinchDelta イベントでは、PinchGestureEventArgs を受け取ります。
イベントで GetPosition メソッドを使用して、両方の指の位置を検出できます (インデックスの 2 番目のパラメーターを渡します)。ただし、この場合は最初の指だけが必要です。
ピンチを開始してから指の間の距離があまり変化していないことを DistanceRatio が示すことを確認することで、これがドラッグかピンチかを確認し、GetPosition() によって報告された位置に基づいてキャンバスを移動できます。
デルタを計算できるように、処理した最後の位置を記憶するために、何らかの状態を維持する必要があります。