FrameworkElement.Margin 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定 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
的邊界值會套用物件 ActualWidth 和 ActualHeight以外的空間。
邊界是版面配置中對等物件的加法;例如,兩個水準或垂直連續的物件在相鄰邊緣上設定的邊界 30
,兩者在相鄰邊緣之間會有 60 圖元的空間。
如果分配的矩形空間不夠大,加上物件的內容區域,則設定邊界的物件通常不會限制指定邊界的大小。 計算版面配置時,內容區域將會受到限制。 唯一限制邊界的情況也是內容已限制為零的情況。 不過,此行為最終是由解譯 Margin 的特定類型以及該物件的版面配置容器所控制。
允許邊界維度的負值,但應謹慎使用 (,並注意不同的類別配置實作) 可以不同方式解譯負邊界。 負邊界通常會以該方向裁剪物件的內容。
技術上允許邊界值的非整數值,但通常應該避免。
邊界和邊框間距
相關的概念是填補。 物件及其周框方塊的邊界是額外的空間,當 UI 元素包含並轉譯時,會配置給周框方塊外部。 填補是周框方塊內的區域,會影響元素內任何其他內容或子物件的配置。
FrameworkElement 不會定義填補屬性,不過,數個 Padding
衍生類別會定義屬性。 其中包括:
如需邊界與邊框間距之間關聯性的詳細資訊,請參閱 對齊、邊界和邊框間距 或 使用 XAML 定義版面配置。