如何在StackLayout / Grid中为UWP创建多行标签?

时间:2016-10-14 12:39:22

标签: xamarin label xamarin.forms uwp windows-10-universal

我使用Xamarin.Forms并且我还没有找到如何为UWP建立多线标签。在我的真实项目中,我在Grid的{​​{1}} ViewCell上有标签。对于以下示例,我将其放入ListView

StackLayout

代码适用于iOS和Android,但不适用于UWP。这里的文字被切断了。如果只使用一个标签且没有<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"> <Label x:Name="titleLabel" Text="some long text" LineBreakMode="WordWrap" /> <Label x:Name="valueLabel" Text="perhaps a much, much, much, much, much, much, much, much, much longer text" LineBreakMode="WordWrap" /> </StackLayout> ,则它会在UWP上使用多行文字正确显示。

我还尝试使用多行StackLayout作为标签的自定义渲染器,但结果是相同的 - 文本被截断。

这是一个错误还是我错过了什么?

修改

现在我做了一个UWP项目

TextBlock

这里的文字也被截断了。看起来在UWP中是不可能的。还有其他解决方案/解决方法吗?

1 个答案:

答案 0 :(得分:2)

如果为每个标签设置WidthRequest,则会正确显示多行标签(通过增加高度)。

另一种解决方案是将标签放入Grid并使用固定的列宽。

这种行为的原因可能是StackLayoutdefault width of Auto(如果没有明确设置),标签不知道它有多大。如果设置宽度,标签可以增长到该大小。

This post让我了解了这个想法。