对gestureListener上的图像宽度/高度的WP7约束

时间:2012-04-28 08:13:17

标签: windows-phone-7

我正在关注此article以了解如何在Windows Phone 7中捏合,拖动和旋转图像。但我注意到图像可以被拖动,缩小到屏幕外。

有没有办法约束图像宽度/高度?

1 个答案:

答案 0 :(得分:1)

我认为您需要自己实施约束。基本上你总是有一个包含图像的容器元素,我假设这个容器有一个宽度/高度设置。

容器和图像在空间中都有4个点(左上角,右上角,左下角,右下角)。对于约束,您只需要检查图像的这些点都不会超过容器。

计算左上角点使用:

var transform = image.TransformToVisual(container);         
Point topLeftPoint = transform.Transform(new Point(0, 0));

要计算右上角,只需将Image.Width添加到topLeftPoint.X即可。要计算左下角的点,请将Image.Height添加到topLeftPoint.Y。要计算右下角,请将Image.Height添加到topLeftPoint.Y,将Image.Width添加到topLeftPoint.X。

然后你只需要检查ContainerTopLeftPoint.X> = ImageTopLeftPoint.X和ContainerTopLeftPoint.Y> = ImageTopLeftPoint.Y ...对每个点进行类似检查(但请记住,对于底部点应该是< ; =而不是> =)。

纯数学:)