我正在使用Pinch和Pan手势识别器,它包裹我的图像以缩放和移动屏幕上的图像。我已经从指南Gesture pinch for zooming和Gesture pan for moving进行了计算。
这里简单的pan计算示例:
// Translate and ensure we don't pan beyond the wrapped user interface element bounds.
Content.TranslationX = Math.Max(Math.Min(0, xOffset + e.TotalX), -Math.Abs(Content.Width - App.ScreenWidth));
Content.TranslationY = Math.Max(Math.Min(0, yOffset + e.TotalY), -Math.Abs(Content.Height - App.ScreenHeight));
问题是当我在包裹图像的行上方添加额外的网格行时,我可以缩放并移动将堆叠在网格行上的图像。
在这种情况下,如何计算图像的边界?
答案 0 :(得分:0)
如果您使用容器可以缩放或移动任何控件,您可以限制缩放以使用带有容器大小和位置的坐标来移动坐标。
Xamarin.Form中的网格只根据配置对齐内部元素,但它不会将更远的控件修改限制为aligh rect。
因此,在执行缩放添加条件的代码中,检查内容宽度或高度是否小于或等于容器宽度或高度。
与内容移动相同。如果Contents Rect超出Conteiner Rect,则停止更改内容翻译。