在Xamarin Forms项目(C#代码,不是XAML)中,我有一些嵌套的水平堆栈布局,如下所示:

xamarin - Xamarin表单-为什么LineBreakMode TailTruncation导致自动换行-LMLPHP

请注意,这里有一个“拒绝:”标签,然后是数量标签(4),然后是原因码标签(“找不到”)。我已将原因代码Label设置为LineBreakMode.TailTruncation的LineBreakMode。我希望当标签变得太长而无法容纳在行上时,它将用椭圆形截断。是的但是,它并不能很好地做到这一点-它会使内容压缩并自动换行,如下所示:

xamarin - Xamarin表单-为什么LineBreakMode TailTruncation导致自动换行-LMLPHP

我已经将“Declined:”标签设置为LineBreakMode.NoWrap,您会注意到“Declined”中的最后一个“d”被切断了。“我没有在” Ordered“和” Picked“标签上设置任何LineBreakMode,并且您会注意到这些自动换行,为什么会这样,我该如何解决?

最佳答案

旋转设备时,或者如果将父元素上的ForceLayout()调用到所有这些嵌套的StackLayout上,它是否再次看起来正常?

我已经注意到,有时我必须这样做,以强制在某些设备上进行重绘或布局(通常只在一个平台或另一平台上才需要,而不是在所有平台上)。

如果那不起作用,我建议您使用Grid(如果您可能的情况)。当我遇到像这样彼此重叠的元素时,我倾向于这样做。我不知道为什么会这样,但是Grid从未使我失望。 Grid似乎对间距更加严格,并且不会让东西流血

关于xamarin - Xamarin表单-为什么LineBreakMode TailTruncation导致自动换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37836540/

10-12 00:32