Xamarin表单计算元素边界

时间:2017-03-31 19:07:41

标签: xamarin xamarin.forms

我正在使用Pinch和Pan手势识别器,它包裹我的图像以缩放和移动屏幕上的图像。我已经从指南Gesture pinch for zoomingGesture 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));

问题是当我在包裹图像的行上方添加额外的网格行时,我可以缩放并移动将堆叠在网格行上的图像。

在这种情况下,如何计算图像的边界?

1 个答案:

答案 0 :(得分:0)

如果您使用容器可以缩放或移动任何控件,您可以限制缩放以使用带有容器大小和位置的坐标来移动坐标。

Xamarin.Form中的网格只根据配置对齐内部元素,但它不会将更远的控件修改限制为aligh rect。

因此,在执行缩放添加条件的代码中,检查内容宽度或高度是否小于或等于容器宽度或高度。

与内容移动相同。如果Contents Rect超出Conteiner Rect,则停止更改内容翻译。