2017-03-31 26 views
1

我使用捏和平移手势识别器,它包裹我的图像以放大和移动屏幕上的图像。我从指南Gesture pinch for zoomingGesture pan for moving中进行了计算。Xamarin Forms计算元素边界

为泛在这里简单的计算例子:

// 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

非常感谢您的回复。我会尽力展示我的问题。在这里,我有我的网格[截图](http://joxi.ru/L214bd8t41LBmX)顶部,与我有第一行=“0”的箭头。当我将图片移动到顶部时,它会覆盖我的第一个网格行,如[截图](http://joxi.ru/KAxN97KHkOYGm8)如何修复它? –

回答

0

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

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

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

与内容移动相同。如果内容翻译失去Conteiner Rect,请停止更改内容翻译。