我正在关注此article以了解如何在Windows Phone 7中捏合,拖动和旋转图像。但我注意到图像可以被拖动,缩小到屏幕外。
有没有办法约束图像宽度/高度?
答案 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 ...对每个点进行类似检查(但请记住,对于底部点应该是< ; =而不是> =)。
纯数学:)