我有一个应用程序,如下图所示(抱歉,我使用的是 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 中定义。
我试过的:
最初我试图在 Drag 事件开始时获取起点,但是通过使用DragStarted(object sender, DragStartedGestureEventArgs e)
,我只能输出被触摸点的坐标,但不能输出该矩形左上角的点。
它类似于DragCompleted
将返回我手势结束点的事件。
那么我有没有机会获得红色矩形的原点坐标?