【发布时间】:2013-01-18 01:03:01
【问题描述】:
我有一个类似于下图所示的应用程序(对不起,我使用的是 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 事件,它将返回手势结束点。
那么我有没有机会得到红色矩形的原点坐标?
【问题讨论】:
标签: windows-phone-7 windows-phone-7.1 windows-phone-8 windows-phone windows-phone-7.1.1