FrameworkElement.Margin Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur margin luar 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"/>
Nilai Properti
Menyediakan nilai margin untuk objek. Nilai default adalah Ketebalan default dengan semua properti (dimensi) sama dengan 0.
Contoh
Contoh ini menetapkan Margin dalam kode sebagai bagian dari skenario yang lebih besar untuk membuat elemen UI pada durasi, lalu mengatur berbagai properti terkait tata letak. Ini sering dilakukan sebelum menambahkan elemen baru ke pohon objek halaman UI XAML yang ada. Dalam hal ini beberapa properti Margin diatur menggunakan Ketebalan baru yang dibuat dengan konstruktor nilai seragam.
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);
}
}
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
Keterangan
Perilaku dan tata letak margin
Nilai margin yang lebih besar dari 0 menerapkan ruang di luar actualWidth dan ActualHeight objek.
Margin bersifat aditif untuk objek serekan dalam tata letak; misalnya, dua objek yang berdampingan secara horizontal atau vertikal keduanya dengan margin 30 yang diatur pada tepi yang berdampingan akan memiliki ruang 60 piksel di antaranya.
Objek yang memiliki margin yang diatur biasanya tidak akan membatasi ukuran Margin yang ditentukan jika ruang persegi panjang yang dialokasikan tidak cukup besar untuk margin ditambah area konten objek. Area konten akan dibatasi sebagai gantinya ketika tata letak dihitung. Satu-satunya kasus di mana margin akan dibatasi juga adalah jika konten sudah dibatasi hingga nol. Namun, perilaku ini pada akhirnya dikendalikan oleh jenis tertentu yang menginterpretasikan Margin, serta kontainer tata letak objek tersebut.
Nilai negatif untuk dimensi margin diizinkan, tetapi harus digunakan dengan hati-hati (dan menyadari bahwa margin negatif dapat ditafsirkan secara berbeda oleh implementasi tata letak kelas yang berbeda). Margin negatif biasanya mengklip konten objek ke arah tersebut.
Nilai non-integral untuk nilai margin secara teknis diizinkan, tetapi biasanya harus dihindari.
Margin dan Padding
Konsep terkait adalah padding. Untuk objek dan kotak pembatasnya, margin adalah ruang ekstra yang dialokasikan ke bagian luar kotak pembatas saat elemen UI dimuat dan dirender. Padding adalah area di dalam kotak pembatas, dan memengaruhi tata letak konten atau objek turunan tambahan di dalam elemen . FrameworkElement tidak menentukan properti padding, Namun, beberapa kelas turunan menentukan properti Padding . Ini termasuk:
- Border.Padding
- Control.Padding
- TextBlock.Padding
- RichTextBlock.Padding
- ItemPresenter.Padding Untuk informasi selengkapnya tentang hubungan antara margin dan padding, lihat Perataan, margin, dan padding atau Tentukan tata letak dengan XAML.