FrameworkElement.Margin Propriété

Définition

Obtient ou définit la marge externe d’un 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"/>
 

Valeur de propriété

Fournit des valeurs de marge pour l’objet . La valeur par défaut est une épaisseur par défaut avec toutes les propriétés (dimensions) égales à 0.

Exemples

Cet exemple montre comment définir Margin dans le code dans le cadre d’un scénario plus large de création d’un élément d’interface utilisateur au moment de l’exécution, puis de définition de différentes propriétés liées à la disposition. Cette opération est souvent effectuée avant d’ajouter un nouvel élément à l’arborescence d’objets d’une page d’interface utilisateur XAML existante. Dans ce cas, plusieurs propriétés margin sont définies à l’aide d’une nouvelle épaisseur créée avec le constructeur de valeur uniforme.

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

Remarques

Comportement et disposition des marges

Une valeur de marge supérieure 0 à applique l’espace en dehors des valeurs ActualWidth et ActualHeight de l’objet.

Les marges sont additives pour les objets homologues dans une disposition ; par exemple, deux objets adjacents horizontalement ou verticalement avec une marge définie 30 sur le bord adjacent auraient 60 pixels d’espace entre eux.

Les objets qui ont des marges définies ne limitent généralement pas la taille de la marge spécifiée si l’espace de rectangle alloué n’est pas suffisamment grand pour la marge plus la zone de contenu de l’objet. La zone de contenu est contrainte à la place lorsque la disposition est calculée. Le seul cas où les marges seraient également limitées est si le contenu est déjà limité à zéro. Toutefois, ce comportement est finalement contrôlé par le type spécifique qui interprète Margin, ainsi que par le conteneur de disposition de cet objet.

Les valeurs négatives pour les dimensions de marge sont autorisées, mais doivent être utilisées avec précaution (et sachez que les marges négatives peuvent être interprétées différemment selon les implémentations de disposition de classes). Les marges négatives coupent généralement le contenu de l’objet dans cette direction.

Les valeurs non intégrales pour les valeurs de marge sont techniquement autorisées, mais doivent généralement être évitées.

Marge et remplissage

Un concept connexe est le remplissage. Pour un objet et son cadre englobant, la marge est un espace supplémentaire alloué à l’extérieur du cadre englobant lorsque l’élément d’interface utilisateur est contenu et rendu. Le remplissage est la zone à l’intérieur du cadre englobant et affecte la disposition de tout contenu ou objet enfant supplémentaire à l’intérieur de l’élément. FrameworkElement ne définit pas de propriété de remplissage. Toutefois, plusieurs classes dérivées définissent une Padding propriété. Il s’agit notamment des paramètres suivants :

Pour plus d’informations sur la relation entre marge et remplissage, consultez Alignement, marge et remplissage ou Définir des dispositions avec XAML.

S’applique à

Voir aussi