FrameworkElement.Margin Property

Ottiene o imposta il margine esterno di un oggetto FrameworkElement.

Sintassi


public Thickness Margin { get; set; }


<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>
 

XAML Values

uniform

Valore misurato in pixel che specifica un oggetto Thickness uniforme. Il valore uniforme è applicato a tutte e quattro le proprietà Thickness (Left, Top, Right, Bottom).

left+right

Valore misurato in pixel che specifica i valori Left e Right di un oggetto Thickness simmetrico.

top+bottom

Valore misurato in pixel che specifica i valori Top e Bottom di un oggetto Thickness simmetrico.

left top right bottom

Valori misurati in pixel che specificano le quattro possibili proprietà di dimensione di una struttura Thickness (Left, Top, Right, Bottom).

Nota  Nelle sintassi XAML illustrate in precedenza, è inoltre possibile utilizzare uno spazio anziché una virgola come delimitatore tra i valori.

Valore della proprietà

Type: Thickness

Specifica i valori del margine per l'oggetto. L'impostazione predefinita è un oggetto Thickness predefinito con tutte le proprietà (dimensioni) uguali a 0.

Note

Comportamento del margine e layout

Un valore di margine maggiore di 0 applica spazio esternamente a ActualWidth e ActualHeight dell'oggetto.

I margini costituiscono un elemento aggiuntivo per gli oggetti peer in un layout. Due oggetti adiacenti in verticale o in orizzontale, ad esempio, con margine 30 impostato nel bordo adiacente saranno separati da 60 pixel di spazio.

Gli oggetti con margini impostati non limitano in genere la dimensione dell'oggetto Margin specificato se lo spazio del rettangolo assegnato non è sufficientemente grande per il margine più l'area di contenuto dell'oggetto. L'area di contenuto è invece vincolata quando viene calcolato il layout. Il solo caso in cui anche i margini vengono vincolati si verifica quando il contenuto è già completamente vincolato su zero. Questo comportamento, tuttavia, è controllato in modo definitivo dal tipo specifico che interpreta Margin, nonché dal contenitore di layout dell'oggetto.

Benché per le dimensioni dei margini siano consentiti valori negativi, questi devono essere utilizzati con attenzione e possono essere interpretati in modo diverso a seconda delle diverse implementazioni del layout delle classi. Margini negativi comportano in genere il ritaglio del contenuto dell'oggetto in tale direzione.

I valori non integrali per i margini sono consentiti tecnicamente, ma generalmente devono essere evitati.

Margine e riempimento

Un concetto correlato è il riempimento. Per un oggetto e il relativo riquadro delimitatore, il margine è uno spazio aggiuntivo allocato all'esterno del riquadro delimitatore quando l'elemento dell'interfaccia utente è contenuto e sottoposto a rendering. La spaziatura interna è l'area nel riquadro delimitatore e influisce sul layout di tutti i contenuti o gli oggetti figlio aggiuntivi all'interno dell'elemento. FrameworkElement non definisce una proprietà Padding. Tuttavia, diverse classi derivate definiscono una proprietà Padding. tra cui:

Per ulteriori informazioni sulla relazione tra margini e spaziatura interna, vedere Guida introduttiva: Definizione dei layout.

Esempi

In questo esempio viene impostato Margin nel codice come parte di uno scenario più esteso di creazione di un elemento di interfaccia utente in fase di esecuzione e quindi di impostazione di varie proprietà correlate al layout. Questa operazione viene spesso eseguita prima di aggiungere un nuovo elemento a un albero di oggetti della pagina dell'interfaccia utente XAML esistente. In questo caso vengono impostate diverse proprietà Margin utilizzando un nuovo valore Thickness creato dal costruttore di valori uniformi.


    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);
    }
}


Requisiti

Client supportato minimo

Windows 8

Server supportato minimo

Windows Server 2012

Spazio dei nomi

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadati

Windows.winmd

Vedere anche

FrameworkElement
Thickness
Guida introduttiva sulla definizione dei layout

 

 

Mostra:
© 2014 Microsoft