私は別のキャンバス(大きいサイズ)をロードしている1つの外側キャンバスを持っています。内部(大)キャンバスの一部だけが画面に表示されるようにクリップのジオメトリを設定しました。最初の縮尺が1未満のキャンバスピンチとズーム
インナーキャンバスのサイズが大きいので、インナーキャンバスの最初の縮尺を0.4に保っています。つまり、内側のキャンバスにコンポジット変換を適用し、scaleXとscaleYを0.4にしました。
今、私はジェスチャーリスナーメソッドOnPinchStartとOnPinchDeltaを実装しました。 OnPinchDeltaではキャンバスをズームしています。
問題は、最初の縮尺が0.4なので縮尺が達する(または縮尺が1になる)まで、キャンバスが中央からズーミングしていないということは、その位置が変更されたことを意味します。ただし、倍率が1に達するとすぐにキャンバスのズームが適切に開始されます。
縮尺率が1未満の場合は、中心からのズーミングが起こっていないため、キャンバスの位置が適切でない場合があります。
私は多くの異なるアプローチを試みましたが、1未満のスケールファクタは私にとっては適切に機能しません。助けてください。
PinchDeltaのCanvas.LeftとCanvas.TopにHorizontalChangeを掛け合わせてみませんか? –
あなたはCanvas.SetLeftとCanvas.SetTopメソッドを言うつもりですか? – pratik
私は、より詳細な説明を –