请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
.NET Framework
 Margin 属性
全部折叠/全部展开 全部折叠
此页面仅适用于
Microsoft Visual Studio 2008/.NET Framework 3.5

同时提供下列产品的其他版本:
.NET Framework 类库
FrameworkElement..::.Margin 属性

更新:2007 年 11 月

获取或设置元素的外边距。这是一个依赖项属性。

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

Visual Basic(声明)
Public Property Margin As Thickness
Visual Basic (用法)
Dim instance As FrameworkElement
Dim value As Thickness

value = instance.Margin

instance.Margin = value
C#
public Thickness Margin { get; set; }
Visual C++
public:
property Thickness Margin {
    Thickness get ();
    void set (Thickness value);
}
J#
/** @property */
public Thickness get_Margin()
/** @property */
public  void set_Margin(Thickness value)
JScript
public function get Margin () : Thickness
public function set Margin (value : Thickness)
XAML 属性元素用法
<object>
  <object.Margin>
    <Thickness Left="left" Top="top" Right="right" Bottom="bottom"/>
  </object.Margin>
</object>
XAML 属性用法
<object Margin="left,top,right,bottom"/>
- or -
<object Margin="left,top"/>
- or -
<object Margin="thicknessReference"/>
XAML 值
left, right, top, bottom

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

属性用法也接受按提供的顺序对称而符合逻辑地应用的缩略值。例如,Margin="20" 将被解释为表示一个将所有属性都设置为 20 的 ThicknessMargin="20,50" 将被解释为表示一个将 Left Right 设置为 20 并且将 Top Bottom 设置为 50 的 Thickness

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

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

thicknessReference

一个对现有 Thickness 的对象引用。这可能{Binding}}} 引用。有关可扩展应用程序标记语言 (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 .NET 版本。

C#
<Button Click="OnClick" Margin="10" Name="btn1">
Click To See Change!!</Button>
Visual Basic
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
C#
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

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

.NET Framework

受以下版本支持:3.5、3.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker