Margin and Padding
Margin和Padding属性控制在用户界面中渲染元素时的布局行为。本文演示了两个属性之间的区别,以及如何设置它们。
概观
保证金和填充是相关的布局概念:
- 该
Margin
属性表示元素与其相邻元素之间的距离,用于控制元素的渲染位置及其邻居的渲染位置。Margin
可以在布局和视图类中指定值。 - 该
Padding
属性表示元素与其子元素之间的距离,用于将控件与其自身内容分开。Padding
可以在布局类上指定值。
下图说明了两个概念:
请注意,Margin
值是相加的。因此,如果两个相邻元素指定20像素的边距,则元素之间的距离将为40像素。此外,当应用两者时,边距和填充是相加的,因为元素和任何内容之间的距离将是边距加上填充。
指定厚度
的Margin
和Padding
特性都是类型Thickness
。创建Thickness
结构时有三种可能性:
- 创建
Thickness
由单个统一值定义的结构。单个值应用于元素的左侧,上侧,右侧和底侧。 - 创建一个
Thickness
由水平和垂直值定义的结构。水平值对称地施加到元件的左侧和右侧,垂直值对称地施加到元件的顶侧和底侧。 - 创建
Thickness
由四个不同的值定义的结构,这些值应用于元素的左,顶,右和底两边。
以下XAML代码示例显示了以下三种可能性:
<StackLayout Padding="0,20,0,0">
<Label Text="Xamarin.Forms" Margin="20" />
<Label Text="Xamarin.iOS" Margin="10, 15" />
<Label Text="Xamarin.Android" Margin="0, 20, 15, 5" />
</StackLayout>
等效的C#代码显示在以下代码示例中:
var stackLayout = new StackLayout {
Padding = new Thickness(0,20,0,0),
Children = {
new Label { Text = "Xamarin.Forms", Margin = new Thickness (20) },
new Label { Text = "Xamarin.iOS", Margin = new Thickness (10, 25) },
new Label { Text = "Xamarin.Android", Margin = new Thickness (0, 20, 15, 5) }
}
};
Thickness
值可以是否定的,通常会剪切或覆盖内容。