FrameworkElement.Margin Property

获取或设置 FrameworkElement 的外边距。

语法


public Thickness Margin { get; set; }


<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>
 

XAML Values

uniform

指定统一的 Thickness 且以像素为单位度量的值。uniform 值应用于所有四个 Thickness 属性(LeftTopRightBottom)。

left+right

指定对称 ThicknessLeftRight 且以像素为单位度量的值。

top+bottom

指定对称 ThicknessTopBottom 且以像素为单位度量的值。

left top right bottom

以像素为单位度量的值,用于指定 Thickness 结构的四个可能的维度属性(LeftTopRightBottom)。

注意  在以上所示的 XAML 语法中,还可以使用空格而不是逗号作为值之间的分隔符。

属性值

类型: Thickness

提供对象的边距值。默认值是所有属性(维度)都等于 0 的默认 Thickness

备注

边距行为和布局

大于 0 的边距值在对象的 ActualWidthActualHeight 外部产生空白。

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

对于设置边距的对象而言,如果所分配的矩形空间不够大,无法容纳边距加上对象内容区域,则对象通常不会约束指定 Margin 的大小。在计算布局时,将改为约束内容区域的大小。同时还要对边距进行约束的唯一一种情况是已经将内容一直约束到零。不过,此行为由解释 Margin 的特定类型以及该对象的布局容器最终控制。

允许边距维度的值为负,但应小心使用(请注意,不同的类布局实现对于负边距可能有不同的解释)。负边距通常会按该方向剪辑对象内容。

从技术上讲,边距值可以为非整数,但通常应避免这种情况。

边距和填充

相关概念是填充。对对象及其边界框来说,边距是当包含 UI 元素并将其呈现时,分配到边界框外部的额外空间。填充是位于边界框内的区域,影响元素内任何其他内容或子对象的布局。FrameworkElement 不定义 padding 属性,但几个派生类定义 Padding 属性。这些元素包括:

有关边距与填充之间的关系的更多信息,请参见快速入门:定义布局

示例

此示例以代码形式设置 Margin 作为更大方案的一部分,该方案为在运行时创建 UI 元素,然后设置各种与布局相关的属性。这通常在添加一个新元素到现有的 XAML UI 页的对象树之前完成。在此情况下,使用通过统一值构造函数创建的新 Thickness 来设置几个 Margin 属性。


    public Page()
    {
        InitializeComponent();
        LayoutDesign();
    }

    private void LayoutDesign()
    {
        //Create Stackpanel for ListBox Control and its description
        StackPanel DeptStackPanel = new StackPanel();
        DeptStackPanel.Margin = new Thickness(10);

        LayoutRoot.Children.Add(DeptStackPanel);
        Grid.SetColumn(DeptStackPanel, 1);
        Grid.SetRow(DeptStackPanel, 1);

        TextBlock DeptListHeading = new TextBlock();
        DeptListHeading.Text = "Department";

        ListBox DeptList = new ListBox();
        DeptList.Items.Add("Finance");
        DeptList.Items.Add("Marketing");
        DeptList.Items.Add("Human Resources");
        DeptList.Items.Add("Payroll");

        DeptStackPanel.Children.Add(DeptListHeading);
        DeptStackPanel.Children.Add(DeptList);

        //Create StackPanel for buttons
        StackPanel ButtonsStackPanel = new StackPanel();
        ButtonsStackPanel.Margin = new Thickness(10);
        ButtonsStackPanel.Orientation = Orientation.Horizontal;
        ButtonsStackPanel.HorizontalAlignment = HorizontalAlignment.Center;

        LayoutRoot.Children.Add(ButtonsStackPanel);
        Grid.SetColumn(ButtonsStackPanel, 0);
        Grid.SetRow(ButtonsStackPanel, 2);
        Grid.SetColumnSpan(ButtonsStackPanel, 2);

        Button BackButton = new Button();
        BackButton.Content = "Back";
        BackButton.Width = 100;

        Button CancelButton = new Button();
        CancelButton.Content = "Cancel";
        CancelButton.Width = 100;

        Button NextButton = new Button();
        NextButton.Content = "Next";
        NextButton.Width = 100;

        ButtonsStackPanel.Children.Add(BackButton);
        ButtonsStackPanel.Children.Add(CancelButton);
        ButtonsStackPanel.Children.Add(NextButton);

        BackButton.Margin = new Thickness(10);
        CancelButton.Margin = new Thickness(10);
        NextButton.Margin = new Thickness(10);
    }
}


要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

命名空间

Windows.UI.Xaml
Windows::UI::Xaml [C++]

元数据

Windows.winmd

另请参见

FrameworkElement
Thickness
快速入门:定义格式

 

 

显示:
© 2014 Microsoft