Gets or sets the outer margin of a FrameworkElement.
<frameworkElement Margin="uniform"/> - or - <frameworkElement Margin="left+right,top+bottom"/> - or - <frameworkElement Margin="left,top,right,bottom"/>
A value measured in pixels that specifies a uniform Thickness. The uniform value is applied to all four Thickness properties (Left, Top, Right, Bottom).
A value measured in pixels that specifies the Left and Right of a symmetrical Thickness.
A value measured in pixels that specifies the Top and Bottom of a symmetrical Thickness.
- left top right bottom
Values measured in pixels that specify the four possible dimension properties of a Thickness (Left, Top, Right, Bottom).
Note In the XAML syntaxes shown previously, you can also use a space instead of a comma as the delimiter between values.
Provides margin values for the object. The default value is a default Thickness with all properties (dimensions) equal to 0.
Margins are additive for peer objects in a layout; for example, two horizontally or vertically adjacent objects both with a margin of 30 set on the adjoining edge would have 60 pixels of space between them.
Objects that have margins set will not typically constrain the size of the specified Margin if the allotted rectangle space is not large enough for the margin plus the object's content area. The content area will be constrained instead when layout is calculated. The only case where margins would be constrained also is if the content is already constrained all the way to zero. However, this behavior is ultimately controlled by the specific type that is interpreting Margin, as well as the layout container of that object.
Negative values for margin dimensions are permitted, but should be used with caution (and be aware that negative margins can be interpreted differently by different class layout implementations). Negative margins typically clip the content of the object in that direction.
Non-integral values for margin values are technically permitted, but should typically be avoided.
A related concept is padding. For an object and its bounding box, the margin is extra space that is allocated to the outside of the bounding box when the UI element is contained and rendered. Padding is the area inside the bounding box, and affects the layout of any additional content or child objects inside the element. FrameworkElement does not define a padding property, However, several derived classes do define a Padding property. These include:Alignment, margin, and padding for UI element layout or Quickstart: Defining layouts.
This example sets Margin in code as part of a larger scenario of creating a UI element at run time, and then setting various layout-related properties. This is often done prior to adding a new element to an existing XAML UI page's object tree. In this case several Margin properties are set using a new Thickness created with the uniform-value constructor.
Partial Public Class Page Inherits UserControl Public Sub New() InitializeComponent() LayoutDesign() End Sub Private Sub LayoutDesign() 'Create Stackpanel for ListBox Control and its description Dim DeptStackPanel As New StackPanel() DeptStackPanel.Margin = New Thickness(10) LayoutRoot.Children.Add(DeptStackPanel) Grid.SetColumn(DeptStackPanel, 1) Grid.SetRow(DeptStackPanel, 1) Dim DeptListHeading As New TextBlock() DeptListHeading.Text = "Department" Dim DeptList As 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 Dim ButtonsStackPanel As 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) Dim BackButton As New Button() BackButton.Content = "Back" BackButton.Height = 30 BackButton.Width = 100 Dim CancelButton As New Button() CancelButton.Content = "Cancel" CancelButton.Height = 30 CancelButton.Width = 100 Dim NextButton As New Button() NextButton.Content = "Next" NextButton.Height = 30 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) End Sub End Class
Minimum supported client
Minimum supported server
|Windows Server 2012|
- Alignment, margin, and padding for UI element layout
- Quickstart: Defining layouts