FrameworkElement.Margin Property

Obtient ou définit la marge extérieure d'un FrameworkElement.

Syntaxe


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

Valeur mesurée en pixels qui spécifie une Thickness uniforme. La valeur uniforme est appliquée aux quatre propriétés Thickness(Left, Top, Right, Bottom).

left+right

Valeur mesurée en pixels qui spécifie la Left et la Right d'une Thickness symétrique.

top+bottom

Valeur mesurée en pixels qui spécifie la Top et la Bottom d'une Thickness symétrique.

left top right bottom

Valeurs mesurées en pixels qui spécifient les quatre propriétés de dimension possibles d'une Thickness (Left, Top, Right, Bottom).

Remarque  Dans les syntaxes XAML indiquées précédemment, vous pouvez également utiliser un espace plutôt qu'une virgule comme délimiteur entre les valeurs.

Valeur de propriété

Type: Thickness

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

Remarques

Comportement et disposition des marges

Une valeur de marge supérieure à 0 applique l'espace à l'extérieur des propriétés ActualWidth et ActualHeight de l'objet.

Les marges d'objets homologues sont additionnables dans une disposition ; par exemple, deux éléments adjacents horizontalement ou verticalement présentant tous deux une marge de 30 définie sur le bord contigu sont espacés de 60 pixels.

Les objets qui présentent une marge définie ne limitent généralement pas la taille de l'élément Margin spécifié si l'espace rectangulaire alloué n'est pas assez grand pour la marge plus la zone de contenu de l'objet. Dans ce cas, une contrainte est appliquée à cette zone lorsque la disposition est calculée. Le seul cas où les marges sont également contraintes s'applique si le contenu est déjà invariablement contraint à zéro. Toutefois, ce comportement est contrôlé en fin de compte par le type spécifique qui interprète Margin, ainsi que 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 vigilance (les marges négatives peuvent en effet être interprétées différemment par les diverses implémentations de disposition de la classe). Les marges négatives découpent généralement le contenu de l'objet dans cette direction.

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

Marge et marge intérieure

Un concept connexe est la marge intérieure. Pour un objet et son cadre englobant, la marge est l'espace supplémentaire alloué à l'extérieur du cadre englobant lorsque l'élément d'interface utilisateur est contenu et restitué. Le remplissage est la zone à l'intérieur de la zone englobante, et affecte la disposition d'un contenu supplémentaire ou des objets enfants contenus dans l'élément. FrameworkElement ne définit pas de propriété de remplissage, toutefois, plusieurs classes dérivées définissent une propriété Padding . Cela inclut :

Pour plus d'informations sur la relation entre la marge et le remplissage, consultez Quickstart: Defining layouts.

Exemples

Cet exemple définit Margin dans du code dans le cadre d'un scénario plus vaste consistant à créer un élément d'interface utilisateur au moment de l'exécution, puis à définir diverses propriétés liées à la disposition. Cela est généralement effectué 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 structure Thickness 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);
    }
}


Configuration requise

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Espace de noms

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

Métadonnées

Windows.winmd

Voir aussi

FrameworkElement
Thickness
Démarrage rapide : définition des dispositions

 

 

Afficher:
© 2014 Microsoft