FrameworkElement.Margin Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen des äußeren Rands eines FrameworkElements.
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"/>
Eigenschaftswert
Stellt Randwerte für das Objekt bereit. Der Standardwert ist eine Standardstärke mit allen Eigenschaften (Dimensionen) gleich 0.
Beispiele
In diesem Beispiel wird der Code als Teil eines größeren Szenarios zum Erstellen eines UI-Elements zur Laufzeit festgelegt Margin und anschließend verschiedene layoutbezogene Eigenschaften festgelegt. Dies geschieht häufig vor dem Hinzufügen eines neuen Elements zur Objektstruktur einer vorhandenen XAML-UI-Seite. In diesem Fall werden mehrere Margin-Eigenschaften mithilfe einer neuen Stärke festgelegt, die mit dem Uniform-Value-Konstruktor erstellt wurde.
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);
}
}
Hinweise
Seitenrandverhalten und Layout
Ein Randwert, der größer ist als 0 das Anwenden von Leerzeichen außerhalb des ActualWidth - und ActualHeight-Objekts.
Seitenränder sind für Peerobjekte in einem Layout additiv; Beispielsweise hätten zwei horizontal oder vertikal angrenzende Objekte, die auf 30 dem angrenzenden Rand festgelegt sind, 60 Pixel Abstand dazwischen.
Objekte mit festgelegten Seitenrändern beschränken in der Regel nicht die Größe des angegebenen Rands, wenn der zugewiesene Rechteckbereich nicht groß genug für den Rand und den Inhaltsbereich des Objekts ist. Der Inhaltsbereich wird stattdessen eingeschränkt, wenn das Layout berechnet wird. Der einzige Fall, bei dem Ränder eingeschränkt würden, ist auch, wenn der Inhalt bereits auf Null beschränkt ist. Dieses Verhalten wird jedoch letztendlich durch den spezifischen Typ gesteuert, der Margin interpretiert, sowie den Layoutcontainer dieses Objekts.
Negative Werte für Randabmessungen sind zulässig, sollten jedoch mit Vorsicht verwendet werden (und beachten Sie, dass negative Ränder durch unterschiedliche Klassenlayoutimplementierungen unterschiedlich interpretiert werden können). Negative Ränder schneiden den Inhalt des Objekts in dieser Richtung in der Regel ab.
Nicht integrale Werte für Randwerte sind technisch zulässig, sollten jedoch in der Regel vermieden werden.
Rand und Abstand
Ein verwandtes Konzept besteht im Abstand. Für ein Objekt und das umgebende Feld ist der Rand zusätzlicher Platz, der außerhalb des umgebenden Felds zugewiesen wird, wenn das UI-Element enthalten und gerendert wird. Der Abstand ist der Bereich innerhalb des umgebenden Felds und wirkt sich auf das Layout zusätzlicher Inhalte oder untergeordneter Objekte innerhalb des Elements aus.
FrameworkElement definiert keine Abstandseigenschaft. Mehrere abgeleitete Klassen definieren jedoch eine Padding Eigenschaft. Dazu zählen:
Weitere Informationen zur Beziehung zwischen Rand und Abstand finden Sie unter Ausrichtung, Rand und Abstand oder Definieren von Layouts mit XAML.