首页 文章

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

提问于
浏览
1

我发现了如何为UWP Build 多线标签 . 在我的真实项目中,我在 Grid 中的 Grid 中有一个标签 . 对于以下示例,我将其放入 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>

该代码适用于iOS和Android,但不适用于UWP . 这里的文字被切断了 . 如果仅使用一个标签且没有使用 StackLayout ,则它在带有多行文本的UWP上正确显示 .

我还尝试使用多线 TextBlock 作为标签的自定义渲染器,但结果是相同的 - 文本被切断 .

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

Edit:

现在我做了一个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>

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

1 回答

  • 2

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

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

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

    This post带给我这个想法 .

相关问题