我发现了如何为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 回答
如果为每个标签设置
WidthRequest
,则会正确显示多线标签(通过增加高度) .另一种解决方案是例如将标签放入
Grid
并使用固定的列宽 .这种行为的原因可能是
StackLayout
有default width of Auto(如果没有明确设置),标签不知道它有多大 . 如果设置宽度,标签可以增长到该大小 .This post带给我这个想法 .