FrameworkElement.Margin Property

Ruft den äußeren Rand eines FrameworkElement ab oder legt diesen fest.

Syntax


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

Ein Pixelwert, der eine einheitliche Thickness angibt. Der uniform-Wert wird auf alle vier Thickness-Eigenschaften (Left, Top, Right, Bottom) angewendet.

left+right

Ein Pixelwert, der die Left- und Right-Werte einer symmetrischen Thickness angibt.

top+bottom

Ein Pixelwert, der die Top- und Bottom-Werte einer symmetrischen Thickness angibt.

left top right bottom

In Pixeln gemessene Werte, die die vier möglichen Dimensionseigenschaften einer Thickness-Struktur angeben (Left, Top, Right, Bottom).

Hinweis  In den zuvor beschriebenen XAML-Syntaxen können Sie anstelle eines Kommas auch ein Leerzeichen als Trennzeichen zwischen Werten verwenden.

Eigenschaftswert

Typ: Thickness

Stellt Randwerte für das Objekt bereit. Der Standardwert ist eine Standard-Thickness, bei der alle Eigenschaften (Abmessungen) gleich 0 sind.

Hinweise

Randverhalten und Layout

Mit einem Randwert größer als 0 wird Leerraum außerhalb der ActualWidth und ActualHeight des Objekts angewendet.

Ränder sind bei Peerobjekten in einem Layout additiv. Beispielsweise liegen zwischen zwei horizontal oder vertikal aneinandergrenzenden Elementen mit einem Rand von je 30 Einheiten demnach 60 Einheiten.

Objekte mit festgelegten Rändern beschränken die Größe des angegebenen Margin i. d. R. nicht, wenn der zugewiesene Raum für das Rechteck für den Rand und den Inhaltsbereich des Objekts nicht breit genug ist. Beim Berechnen des Layouts wird der Inhaltsbereich jedoch beschränkt. Der einzige Fall, in dem auch die Ränder beschränkt werden, liegt vor, wenn der Inhalt bereits auf 0 beschränkt ist. Dieses Verhalten wird letztlich jedoch von dem spezifischen Typ, der Margin interpretiert, sowie vom Layoutcontainer dieses Objekts gesteuert.

Negative Werte für Randabmessungen sind zulässig. Sie sollten jedoch mit Vorsicht verwendet werden (und beachten Sie, dass negative Werte von verschiedenen Klassenlayoutimplementierungen unterschiedlich interpretiert werden können). Mit negativen Rändern wird i. d. R. der Inhalt des Objekts in der entsprechenden Richtung abgeschnitten.

Nicht ganzzahlige Werte für Randwerte sind aus technischer Sicht zulässig, sollten jedoch im Allgemeinen vermieden werden.

Ränder und Auffüllung

Auffüllen ist ein verwandtes Konzept. Für ein Objekt und das umgebende Feld ist der Rand zusätzliche Platz, der der Außenseite des umgebenden Felds zugeordnet wird, wenn das Benutzeroberflächenelement eingefügt und gerendert wird. Die Auffüllung ist der Bereich im umgebenden Feld und wirkt sich auf das Layout aller zusätzlichen Inhalte und untergeordneten Objekte im Element aus. FrameworkElement definiert keine Auffüllungseigenschaft, jedoch definieren mehrere abgeleitete Klassen eine Padding-Eigenschaft. Dazu gehören:

Weitere Informationen zur Beziehung zwischen Rand und Innenabstand finden Sie unter Schnellstart: Definieren von Layouts.

Beispiele

In diesem Beispiel werden im Rahmen eines größeren Szenarios zum Erstellen eines Benutzeroberflächenelements während der Laufzeit das Margin-Element im Code festgelegt und dann verschiedene zum Layout gehörende Eigenschaften definiert. Dies wird häufig vor dem Hinzufügen eines neuen Elements zu einer vorhandenen XAML-Objektstruktur der Benutzeroberflächenseite ausgeführt. In diesem Fall werden mehrere Margin-Eigenschaften festgelegt, die eine neue Thickness verwenden, die mit dem uniform-Wert-Konstruktor erzeugt 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);
    }
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

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

Metadaten

Windows.winmd

Siehe auch

FrameworkElement
Thickness
Schnellstart: Definieren von Layouts

 

 

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.