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 définit 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 la 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 à 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
Valeur de marge supérieure à 0 l’espace applicable en dehors de ActualWidth et ActualHeight de l’objet.
Les marges sont additifs pour les objets homologues dans une disposition ; par exemple, deux objets adjacents horizontalement ou verticalement avec une marge de 30 jeu 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 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 contraintes est également si le contenu est déjà limité jusqu’à zéro. Toutefois, ce comportement est finalement contrôlé 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 précaution (et sachez que les marges négatives peuvent être interprétées différemment par différentes implémentations de disposition de classe). Les marges négatives découpent généralement le contenu de l’objet dans cette direction.
Les valeurs non intégrales des valeurs de marge sont techniquement autorisées, mais doivent généralement être évitées.
Marge et remplissage
Un concept connexe est de 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 supplémentaire ou objet enfant à 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é. Cela comprend :
Pour plus d’informations sur la relation entre marge et remplissage, consultez Alignement, marge et remplissage ou Définir des dispositions avec XAML.