要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语
本文档已存档,并且将不进行维护。

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 度量的默认单位是device-independent unit (1/96th inch)。 通过将单位类型字符串 cminpt 追加到任何度量,还可以指定其他单位。

作为 XAML 特性提供的数字值无需指定小数点(0 是可接受的,无需以 0.0 的形式提供)。 有关Extensible Application Markup Language (XAML) 用法的更多信息,请参见 Thickness

thicknessReference

一个对现有 Thickness 的对象引用。 这可能是 {Binding}}{StaticResource}{DynamicResource}} 引用。 有关Extensible Application Markup Language (XAML) 用法的更多信息,请参见 Thickness

属性值

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

标识符字段

MarginProperty

设置为 true 的元数据属性

AffectsMeasure

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

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

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

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

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

This example describes how to set the Margin property, by changing any existing property value for the margin in code-behind. The Margin property is a property of the FrameworkElement base element, and is thus inherited by a variety of controls and other elements.

This example is written in Extensible Application Markup Language (XAML), with a code-behind file that the XAML refers to. The code-behind is shown in both a C# and a Microsoft Visual Basic version.


<Button Click="OnClick" Margin="10" Name="btn1">
Click To See Change!!</Button>



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、3.5、3.0

.NET Framework Client Profile

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

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

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