TOC

This article has been localized into Polish by the community.

Panele:

Stos (StackPanel)

StackPanel jest bardzo podobny do WrapPanel, ale z co najmniej jedną istotną różnicą: StackPanel nie zawija zawartości. Zamiast tego rozciąga zawartość w jednym kierunku, pozwalając Ci na układanie elementów jeden za drugim. Spróbuj najpierw bardzo prostego przykładu, podobnie jak zrobiliśmy to z WrapPanel:

<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>

Pierwszą rzeczą, którą powinieneś zauważyć, jest to, że StackPanel naprawdę nie dba o to , czy jest wystarczająco dużo miejsca na zawartość. Nie zawija zawartości w żaden sposób i nie zapewnia automatycznie możliwości przewijania (możesz użyć do tego celu kontrolki ScrollViewer - więcej o tym znajdziesz w jednym z kolejnych rozdziałów).

Możesz również zauważyć, że domyślną orientacją kontrolki StackPanel jest ułożenie pionowe, w przeciwieństwie do kontrolki WrapPanel, gdzie domyślną orientacją jest ułożenie poziome. Ale podobnie jak w kontrolce WrapPanel, możemy to łatwo zmienić za pomocą właściwości Orientation.

<StackPanel Orientation="Horizontal">

Inną rzeczą, którą prawdopodobnie zauważysz, jest to, że StackPanel domyślnie rozciąga kontrolkę znajdującą się w środku. Na kontrolce StackPanel z wyrównaniem pionowym, podobnie jak w pierwszym przykładzie, wszystkie kontrolki podrzędne są rozciągnięte w poziomie. Na kontrolce StackPanel z wyrównaniem poziomym, wszystkie kontrolki podrzędne są rozciągnięte w pionie, tak jak to widać powyżej. StackPanel robi to, ustawiając właściwość HorizontalAlignment lub VerticalAlignment na swoich kontrolkach podrzędnych na wartość "Stretch", ale możesz to łatwo zmienić jeśli chcesz. Spójrzmy na kolejny przykład, gdzie używamy tego samego znacznika jaki użyliśmy w poprzednim przykładzie, ale tym razem przypisujemy wartość do właściwości VerticalAlignment dla wszystkiech kontrolek podrzędnych:

<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>

Używamy wartości "Top", "Center" i "Bottom", aby umieścić przyciski w ładny wzorek, tak dla zabawy. Oczywiście to samo może być wykonane dla StackPanelu z wyrównaniem pionowym, w którym używałbyś właściwości HorizontalAlignment na kontrolkach podrzędnych:

<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>

Jak widzisz, kontrolki podrzędne wciąż są ułożone z góry na dół, ale zamiast mieć taką samą szerokość, każda z nich jest wyrównana do lewej, do prawej lub do środka.


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!