Xamarin.Forms:如何将多标签集中在一行?

时间:2017-09-01 13:46:10

标签: xaml xamarin xamarin.forms grid label

我尝试垂直居中multiline Label,其中包含可在1行或2行显示的文字。

目前,我无法获得预期的渲染......

我可以让多线标签自动延伸,但它是顶部对齐而不是居中: label is not centered

这是附加的XAML:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="0" />
</Grid.RowDefinitions>

<local:MultiLineLabel
    Grid.Row="0"
    Grid.Column="1"
    BackgroundColor="Orange"
    Text="{ Binding encart_titre }"         
    VerticalTextAlignment="Center"
    LineBreakMode="TailTruncation"
    Lines="2"
    ...
/>

我也可以将标签居中,但在这种情况下,它不会自动延伸: enter image description here

这是附加的XAML:

<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="0" />
</Grid.RowDefinitions>

<local:MultiLineLabel
    Grid.Row="0"
    Grid.Column="1"
    BackgroundColor="Orange"
    Text="{ Binding encart_titre }"         
    VerticalTextAlignment="Center"
    LineBreakMode="TailTruncation"
    Lines="2"
    VerticalOptions="FillAndExpand"
    ...
/>

您有任何解释吗?我还试图在Label周围添加StackLayound,但这并没有改变任何东西......

1 个答案:

答案 0 :(得分:2)

控制中心的第一个选择是使用VerticalOptions="CenterAndExpand",您是否尝试过而不是VerticalOptions="FillAndExpand"Here's more information关于Xamarin.Forms中的LayoutOptions。

所以,这将是垂直居中的正确方法:

<local:MultiLineLabel
    Grid.Row="0"
    Grid.Column="1"
    BackgroundColor="Orange"
    Text="{ Binding encart_titre }"         
    VerticalTextAlignment="Center"
    LineBreakMode="TailTruncation"
    Lines="2"
    VerticalOptions="CenterAndExpand" <!-- This one here -->
    ...
/>