首页 > 解决方案 > Xamarin.Forms:向网格中的标签添加填充?

问题描述

一个网格单元看起来像这样:

<Label Text="{Binding Name}" 
       Grid.Row="0" 
       Grid.Column="1" 
       VerticalTextAlignment="Center" 
       HorizontalTextAlignment="Center" 
       FontSize="16" 
       TextColor="White" 
       BackgroundColor="red" />

有 2 列,每列是宽度的 50%。使用上面的 xaml,整个单元格(行的一半)将被涂成红色。

它看起来像这样:

在此处输入图像描述

我可以只添加左和/或右填充Grid.Row="0"Grid.Column="1"以便列仍然是 50% 宽度而不是标签吗?我不想做的是更改网格结构(即添加更多列)。

期望的结果是这样的,但无需添加更多列或更改列大小:

在此处输入图像描述

标签: xamarinxamarin.formsvisual-studio-2017

解决方案


你可以把标签放在aStackLayout里面,并设置它的padding。比如:

<StackLayout Grid.Row="0" Grid.Column="1" Padding="10,0,10,0">
  <Label  
        Text="text"  
        VerticalTextAlignment="Center" 
        HorizontalTextAlignment="Center" 
        FontSize="16" 
        TextColor="White" 
        BackgroundColor="red" />
</StackLayout>

PS:不同于CSS中的padding(top-right-buttom-left),xamarin中padding的顺序是left-top-right-buttom。

有关更多详细信息,您可以参考Margin and Padding


推荐阅读