导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

FrameworkElement.Margin 属性

获取或设置元素的外边距。

命名空间:  System.Windows
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
XAML 的 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public Thickness Margin { get; set; }
<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"/>

XAML 值

左、上、右、下

介于 0 和 PositiveInfinity 之间的数字值,它们指定了一个 Thickness 结构的四个可能的维度属性。

特性用法也接受按提供的顺序对称而符合逻辑地应用的缩略值。 例如,将解释 Margin="20",意味着将 Thickness 的所有属性设置为 20。 Margin="20,50" 将被解释为表示一个 Thickness,将 LeftRight 设置为 20,将 TopBottom 设置为 50。

Thickness 度量的默认单位是与设备无关的单位(1/96 英寸)。 通过将单位类型字符串 cminpt 追加到任何度量,还可以指定其他单位。

作为 XAML 特性提供的数字值无需指定小数点(0 是可接受的,无需以 0.0 的形式提供)。 有关可扩展应用程序标记语言 (XAML) 用法的更多信息,请参见 Thickness

thicknessReference

一个对现有 Thickness 的对象引用。 这可能是 {Binding}}{StaticResource}{DynamicResource}} 引用。 有关可扩展应用程序标记语言 (XAML) 用法的更多信息,请参见 Thickness

属性值

类型:System.Windows.Thickness
提供元素的边距值。 默认值是所有属性都等于 0(零)的 Thickness

标识符字段

MarginProperty

设置为 true 的元数据属性

AffectsMeasure

边距是当布局创建用户界面 (UI) 时此元素与其他相邻元素之间的空间。 共享元素可能是对等元素(如公共父控件的集合中的其他元素),也可能是此元素的父元素。

Margin 被设置为一个 Thickness 结构而不是一个数字,以便能够以非对称方式设置边距。 Thickness 结构本身支持字符串类型的转换,以便您还可以在 XAML 特性语法中指定非对称 Margin

非零边距会在元素布局的 ActualWidthActualHeight 外部产生空白。

对于布局中的同级元素而言,边距是累加的;例如,两个在相邻边缘都设置边距 30 的相邻元素之间将具有 60 个单位的空白。

对于设置边距的元素而言,如果所分配的矩形空间不够大,无法容纳边距加上元素内容区域,则元素通常不会约束指定 Margin 的大小。 在计算布局时,将改为约束元素内容区域的大小。 同时还要对边距进行约束的唯一一种情况是已经将内容一直约束到零。

本示例介绍如何通过在代码隐藏文件中更改边距的任何现有属性值来设置 Margin 属性。 Margin 属性是 FrameworkElement 基元素的属性,因此各种控件以及其他元素都会继承该属性。

本示例以可扩展应用程序标记语言 (XAML) 编写,并包含 XAML 引用的代码隐藏文件。 同时显示了该代码隐藏文件的 C# 和 Microsoft Visual Basic 版本。


<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);
    }
}


.NET Framework

受以下版本支持:4.5、4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

并不是.NET Framework 对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求.

社区附加资源

添加
显示:
© 2014 Microsoft