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"/>
屬性值
提供物件的邊距值。 預設值為預設 厚度 ,所有屬性(尺寸)皆為 0。
範例
這個範例是在程式碼中設定 Margin 為一個更大情境的一部分,例如在執行時建立 UI 元素,然後設定各種與版面相關的屬性。 這通常在為現有 XAML UI 頁面的物件樹新增元素之前完成。 此時,透過使用均勻值建構子建立的新 厚度 ,設定多個邊際屬性。
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);
}
}
備註
邊界行為與佈局
較大的 margin 0 值則會套用物件 ActualWidth 和 ActualHeight 之外的空間。
邊界是對版面中同儕物件的加法;例如,兩個水平或垂直相鄰的物體,且彼此邊界都設定了邊界 30 ,彼此間會有 60 像素的空間。
若設定邊距的物件,若分配的矩形空間不足以容納邊距加上物件內容區域,通常不會限制指定邊距的大小。 在計算版面時,內容區域會受到限制。 唯一會限制邊距的情況是內容已經被完全限制到零。 然而,這種行為最終是由解讀 Margin 的特定類型以及該物件的 layout 容器所控制。
允許邊界維度的負值,但應謹慎使用(並注意負邊距可能因不同類別配置實作而有不同解讀)。 負邊距通常會將物體內容物在該方向截斷。
技術上允許非整數的裕距值,但通常應避免。
邊距與填充
一個相關的概念是填充物。 對於物件及其邊界框,邊界是當 UI 元素被包含並渲染時,分配到邊界框外側的額外空間。 填充是包圍框內的區域,影響元素內其他內容或子物件的佈局。
FrameworkElement 並未定義填充屬性,然而,有幾個衍生類別確實定義了屬性 Padding 。 這些包括:
欲了解更多關於邊界與填充間關係的資訊,請參閱「對齊、邊界與填充」或「用 XAML 定義版面」。