下の画像のようなアプリを持っています(モックアップのようにiPhoneを使用しました)
アプリには背景として画像があり(視覚的な画面サイズ全体を占めるCanvasを使用して表示されます)、別の形状(この場合は赤い長方形)が背景の上に表示され、ドラッグしてピンチズームできます。
今の質問は:
長方形の左上隅の座標(画面の左上隅、つまりキャンバスの左上隅からの原点)を取得するにはどうすればよいですか?
アップデート
@Willの提案によると、私は現在、この場合、次のように長方形の内部をDragDelta
使用して長方形を移動します。TranslateTransform
rectTransform.X += e.HorizonalChange;
rectTransform.Y += e.VerticalChange;
長方形は、XAMLではなくコード内で定義されます。
rect.Stroke = new SolidColorBrush(Colors.Green);
rect.StrokeThickness = 10;
rect.Fill = new SolidColorBrush(Colors.Transparent);
rect.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
rect.VerticalAlignment = System.Windows.VerticalAlignment.Center;
rect.Width = 200;
rect.Height = 200;
canvas.Children.Add(rect);
キャンバスはXAML内で定義されます。
私が試したこと:
当初、ドラッグイベントの開始時に開始点を取得しようとしていましたが、を使用するDragStarted(object sender, DragStartedGestureEventArgs e)
と、タッチされた点の座標のみを出力でき、この長方形の左上隅の点は出力できません。
DragCompleted
そして、それはジェスチャーが終了するポイントを私に返すイベントに似ています。
では、赤い長方形の原点座標を取得できる可能性はありますか?