更新:2007 年 11 月
获取或设置元素的外边距。这是一个依赖项属性。
Public Property Margin As Thickness
Dim instance As FrameworkElement Dim value As Thickness value = instance.Margin instance.Margin = value
public Thickness Margin { get; set; }
public: property Thickness Margin { Thickness get (); void set (Thickness value); }
/** @property */ public Thickness get_Margin() /** @property */ public void set_Margin(Thickness value)
public function get Margin () : Thickness public function set Margin (value : Thickness)
<object> <object.Margin> <Thickness Left="left" Top="top" Right="right" Bottom="bottom"/> </object.Margin> </object>
<object Margin="left,top,right,bottom"/> - or - <object Margin="left,top"/> - or - <object Margin="thicknessReference"/>
介于 0 和 PositiveInfinity 之间的数字值,它们指定了一个 Thickness 结构的四个可能的维度属性。
属性用法也接受按提供的顺序对称而符合逻辑地应用的缩略值。例如,Margin="20" 将被解释为表示一个将所有属性都设置为 20 的 Thickness。Margin="20,50" 将被解释为表示一个将 Left 和 Right 设置为 20 并且将 Top 和 Bottom 设置为 50 的 Thickness。
Thickness 度量的默认单位是与设备无关的单位(1/96 英寸)。通过将单位类型字符串 cm、in 或 pt 追加到任何度量,还可以指定其他单位。
作为 XAML 属性提供的数字值无需指定小数点(0 是可接受的,无需以 0.0 的形式提供)。有关可扩展应用程序标记语言 (XAML) 用法的更多信息,请参见 Thickness。
一个对现有 Thickness 的对象引用。这可能{Binding}}} 引用。有关可扩展应用程序标记语言 (XAML) 用法的更多信息,请参见 Thickness。
提供元素的边距值。默认值是所有属性都等于 0(零)的 Thickness。
标识符字段
MarginProperty
设置为 true 的元数据属性
AffectsMeasure
边距是当布局创建用户界面 (UI) 时此元素与其他相邻元素之间的空间。共享元素可能是对等元素(如公共父控件的集合中的其他元素),也可能是此元素的父元素。
Margin 被设置为一个 Thickness 结构而不是一个数字,以便能够以非对称方式设置边距。Thickness 结构本身支持字符串类型的转换,以便您还可以在 XAML 属性语法中指定非对称 Margin。
非零边距会在元素布局的 ActualWidth 和 ActualHeight 外部产生空白。
对于布局中的同级元素而言,边距是累加的;例如,两个在相邻边缘都设置边距 30 的相邻元素之间将具有 60 个单位的空白。
对于设置边距的元素而言,如果所分配的矩形空间不够大,无法容纳边距加上元素内容区域,则元素通常不会约束指定 Margin 的大小。在计算布局时,将改为约束元素内容区域的大小。同时还要对边距进行约束的唯一一种情况是已经将内容一直约束到零。
本示例介绍如何通过在代码隐藏文件中更改边距的任何现有属性值来设置 Margin 属性。 Margin 属性是 FrameworkElement 基本元素的属性,因此各种控件以及其他元素都会继承该属性。有关完整示例,请参见 边距设置示例。
本示例以可扩展应用程序标记语言 (XAML) 编写,并包含 XAML 引用的代码隐藏文件。同时显示了该代码隐藏文件的 C# 和 Microsoft Visual Basic .NET 版本。
<Button Click="OnClick" Margin="10" Name="btn1"> Click To See Change!!</Button>
Private Sub OnClick(ByVal sender As Object, ByVal e As RoutedEventArgs) ' Get the current value of the property. Dim marginThickness As Thickness marginThickness = btn1.Margin ' If the current leftlength value of margin is set to 10 then change it to a new value. ' Otherwise change it back to 10. If marginThickness.Left = 10 Then btn1.Margin = New Thickness(60) Else btn1.Margin = New Thickness(10) End If End Sub
void OnClick(object sender, RoutedEventArgs e) { // Get the current value of the property. Thickness marginThickness = btn1.Margin; // If the current leftlength value of margin is set to 10 then change it to a new value. // Otherwise change it back to 10. if(marginThickness.Left == 10) { btn1.Margin = new Thickness(60); } else { btn1.Margin = new Thickness(10); } }
有关完整示例,请参见 边距设置示例。
Windows Vista