TOC

This article has been localized into German by the community.

Panels:

Das StackPanel Kontrollobjekt

Das StackPanel ist dem WrapPanel sehr ähnlich, aber mit mindestens einem wichtigen Unterschied: Das StackPanel bricht den Inhalt nicht um. Stattdessen dehnt es den Inhalt in eine Richtung aus und erlaubt es, einen Inhalt nach dem anderen übereinander zu stapeln. Schauen wir uns zuerst ein sehr einfaches Beispiel ausprobieren, ähnlich wie wir es mit dem WrapPanel gemacht haben:

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel>
		<Button>Button 1</Button>
		<Button>Button 2</Button>
		<Button>Button 3</Button>
		<Button>Button 4</Button>
		<Button>Button 5</Button>
		<Button>Button 6</Button>
	</StackPanel>
</Window>

Das erste, was man beachten sollte, ist, dass es dem StackPanel egal ist, ob es genug Platz für den Inhalt gibt oder nicht. Der Inhalt wird nicht umgebrochen und man kann nicht automatisch scrollen (man kann dafür jedoch ein ScrollViewer-Steuerelement verwenden - mehr dazu in einem späteren Kapitel).

Man sieht, dass die Standardausrichtung des StackPanels Vertikal ist, im Gegensatz zum WrapPanel, bei dem die Standardausrichtung Horizontal ist. Aber genau wie für das WrapPanel kann dies leicht mithilfe der Orientation-Eigenschaft geändert werden:

<StackPanel Orientation="Horizontal">

Eine andere Sache, die man bemerkt, ist, dass das StackPanel seine Inhalte standardmäßig dehnt. Auf einem vertikal ausgerichteten StackPanel, wie dem im ersten Beispiel, werden alle untergeordneten Steuerelemente horizontal gestreckt. Auf einem horizontal ausgerichteten StackPanel werden alle untergeordneten Steuerelemente vertikal gestreckt, wie oben zu sehen. Mit der HorizonalAlignment- und VerticalAlignment-Eigenschaft des StackPanels kann man dieses Verhalten verändern. Im nachfolgenden Beispiel, in dem wir das gleiche Markup wie im vorherigen Beispiel verwenden, ändern wir die VerticalAlignment-Eigenschaft für alle untergeordneten Steuerelemente:

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel Orientation="Horizontal">
		<Button VerticalAlignment="Top">Button 1</Button>
		<Button VerticalAlignment="Center">Button 2</Button>
		<Button VerticalAlignment="Bottom">Button 3</Button>
		<Button VerticalAlignment="Bottom">Button 4</Button>
		<Button VerticalAlignment="Center">Button 5</Button>
		<Button VerticalAlignment="Top">Button 6</Button>
	</StackPanel>
</Window>

Wir verwenden die Werte Top, Center und Bottom, um die Schaltflächen in einem schönen Muster zu platzieren. Dasselbe gilt natürlich für ein vertikal ausgerichtetes StackPanel, in dem man die HorizontalAlignment-Eigenschaft der untergeordneten Steuerelementen verändert:

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel Orientation="Vertical">
		<Button HorizontalAlignment="Left">Button 1</Button>
		<Button HorizontalAlignment="Center">Button 2</Button>
		<Button HorizontalAlignment="Right">Button 3</Button>
		<Button HorizontalAlignment="Right">Button 4</Button>
		<Button HorizontalAlignment="Center">Button 5</Button>
		<Button HorizontalAlignment="Left">Button 6</Button>
	</StackPanel>
</Window>

Wie man sehen kann werden die Steuerelemente immer noch von oben nach unten gestapelt, jedoch sind die Steuerelemente nicht mehr gestreckt, jedes Steuerelement ist nun entweder nach links (Left), rechts (Right) oder in der Mitte (Center) ausgerichtet.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!