FrameworkElement.Margin Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.