在Xamarin Forms项目(C#代码,不是XAML)中,我有一些嵌套的水平堆栈布局,如下所示:
请注意,这里有一个“拒绝:”标签,然后是数量标签(4),然后是原因码标签(“找不到”)。我已将原因代码Label设置为LineBreakMode.TailTruncation
的LineBreakMode。我希望当标签变得太长而无法容纳在行上时,它将用椭圆形截断。是的但是,它并不能很好地做到这一点-它会使内容压缩并自动换行,如下所示:
我已经将“Declined:”标签设置为LineBreakMode.NoWrap
,您会注意到“Declined”中的最后一个“d”被切断了。“我没有在” Ordered“和” Picked“标签上设置任何LineBreakMode,并且您会注意到这些自动换行,为什么会这样,我该如何解决?
最佳答案
旋转设备时,或者如果将父元素上的ForceLayout()
调用到所有这些嵌套的StackLayout
上,它是否再次看起来正常?
我已经注意到,有时我必须这样做,以强制在某些设备上进行重绘或布局(通常只在一个平台或另一平台上才需要,而不是在所有平台上)。
如果那不起作用,我建议您使用Grid
(如果您可能的情况)。当我遇到像这样彼此重叠的元素时,我倾向于这样做。我不知道为什么会这样,但是Grid
从未使我失望。 Grid
似乎对间距更加严格,并且不会让东西流血
关于xamarin - Xamarin表单-为什么LineBreakMode TailTruncation导致自动换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37836540/