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

tes*_*ing 3 label xamarin xamarin.forms uwp windows-10-universal

我正在使用Xamarin.Forms,但还没有找到如何为UWP创建多行标签。在我真正的项目我有一个标签GridViewCellListView。对于以下示例,我将其放入StackLayout

<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>
Run Code Online (Sandbox Code Playgroud)

该代码适用于iOS和Android,但不适用于UWP。此处的文本被截断。如果仅使用一个标签且不StackLayout使用,则它会正确显示在UWP上并带有多行文字。

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

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

编辑:

现在我做了一个UWP项目

<StackPanel Orientation="Horizontal">
    <TextBlock Text="oh this is a label" TextWrapping="Wrap" />
    <TextBlock Text="and this should be a very, very, very, very, very, very, very, very, very, very long text" TextWrapping="Wrap" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

在这里文字也被剪掉了。在UWP中似乎不可能。还有其他解决方案/解决方法吗?

tes*_*ing 5

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

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

其原因行为可能是StackLayout有一个默认的宽度Auto(如果没有明确设置)和标签不知道它可能是有多大。如果设置宽度,则标签可以增大到该尺寸。

这篇文章使我想到了这个主意。