FrameworkElement.Margin 屬性

定義

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

public:
 property Thickness Margin { Thickness get(); void set(Thickness value); };
Thickness Margin();

void Margin(Thickness value);
public Thickness Margin { get; set; }
var thickness = frameworkElement.margin;
frameworkElement.margin = thickness;
Public Property Margin As Thickness
<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>
 

屬性值

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

範例

本範例會在程式碼中設定 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);
    }
}

備註

邊界行為和版面配置

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

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

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

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

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

邊界和邊框間距

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

如需邊界與邊框間距之間關聯性的詳細資訊,請參閱 對齊、邊界和邊框間距使用 XAML 定義版面配置。

適用於

另請參閱