FrameworkElement.Margin 屬性

定義

取得或設定 FrameworkElement的外部邊界。

C#
public Thickness Margin { get; set; }
XAML
<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>
 

屬性值

提供 物件的邊界值。 預設值是預設的 [粗細 ],所有屬性 (維度) 等於 0。

範例

本範例會將程式碼中的 Margin 設定為在執行時間建立 UI 元素的較大案例的一部分,然後設定各種版面配置相關屬性。 這通常會在將新元素新增至現有 XAML UI 頁面的物件樹狀結構之前完成。 在此情況下,會使用以統一值建構函式建立的新 Thickness 來設定數個 Margin 屬性。

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

備註

邊界行為和版面配置

大於 0 的邊界值會套用物件 ActualWidthActualHeight以外的空間。

邊界是版面配置中對等物件的加法;例如,兩個水準或垂直連續的物件在相鄰邊緣上設定的邊界為 30,兩者之間會有 60 圖元的空間。

如果分配的矩形空間不足以容納邊界加上物件的內容區域,則已設定邊界的物件通常不會限制指定邊界的大小。 當計算版面配置時,內容區域將會受到限制。 唯一限制邊界的情況也是內容已經限制為零。 不過,此行為最終是由解譯 Margin 的特定類型以及該物件的版面配置容器所控制。

允許邊界維度的負值,但應謹慎使用 (,並注意不同的類別配置實作可以不同方式解譯負邊界) 。 負邊界通常會以該方向裁剪物件的內容。

邊界值的非整數值是技術上允許的,但通常應該避免。

邊界和邊框間距

相關的概念是填補。 對於 物件及其周框方塊,邊界是額外空間,會在包含和轉譯 UI 元素時,配置給周框方塊外部。 填補是周框方塊內的區域,並影響元素內任何其他內容或子物件的版面配置。 FrameworkElement 不會定義填補屬性,不過,數個衍生類別會定義 Padding 屬性。 其中包括:

適用於

產品 版本
WinRT Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100

另請參閱