【问题标题】:How to create a multiline label in StackLayout/Grid for UWP?如何在 StackLayout/Grid 中为 UWP 创建多行标签?
【发布时间】:2016-10-14 21:57:11
【问题描述】:

我正在使用 Xamarin.Forms,但我还没有找到如何为 UWP 设置多行标签。在我的实际项目中,我在ListView 中的ViewCell 上有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 作为标签的自定义渲染器,但结果相同 - 文本被截断。

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

编辑:

现在我做了一个 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 中似乎是不可能的。还有其他解决方案/解决方法吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    This post 让我想到了这个主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      相关资源
      最近更新 更多