Share via


FrameworkElement.Margin Properti

Definisi

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 diatur Margin dalam kode sebagai bagian dari skenario yang lebih besar dalam 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);
    }
}

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 berdekatan secara horizontal atau vertikal keduanya dengan margin 30 set pada tepi yang berdekatan akan memiliki 60 piksel ruang di antaranya.

Objek yang memiliki margin yang ditetapkan biasanya tidak akan membatasi ukuran Margin yang ditentukan jika ruang persegi panjang yang dialokasikan tidak cukup besar untuk margin ditambah area isi 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 menafsirkan 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 tambahan atau objek anak di dalam elemen . FrameworkElement tidak menentukan properti padding, Namun, beberapa kelas turunan menentukan Padding properti . Ini termasuk:

Untuk informasi selengkapnya tentang hubungan antara margin dan padding, lihat Perataan, margin, dan padding atau Menentukan tata letak dengan XAML.

Berlaku untuk

Lihat juga