TOC

This article is currently in the process of being translated into Czech (~88% done).

Panely:

The StackPanel control

StackPanel je velmi podobný WrapPanelu, s nejméně jedním důležitým rozdílem: StackPanel nezalamuje obsah. Místo toho roztahuje svůj obsah v jednom směru a umožňuje řadit prvky jeden za druhým. Vyzkoušejme nejdřív velmi jednoduchou ukázku, podobně jako u WrapPanelu:

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

Nejdřív byste si měli všimnout jak se StackPanel vůbec nestará o to, jestli je pro jeho obsah dost místa. Nijak svůj obsah nezalamuje a neposkytuje automaticky možnost posouvání (pro posun můžete nicméně využít prvek ScrollViewer - více o něm v některé z dalších kapitol).

Také si můžete všimnout, že výchozí orientace StackPanelu je vertikální - narozdíl od WrapPanelu kde je výchozí horizontální orientace. Ale stejně jako u WrapPanelu to jde snadno změnit pomocí property Orientation.

<StackPanel Orientation="Horizontal">

Další věc, které si asi všimnete, je, jak StackPanel roztahuje obsažené prvky. Když je StackPanel orientován vertikálně, jako ten v první ukázce, všechny obsažené prvky jsou roztaženy horizontálně. V horizontálně řazeném StackPanelu jsou všechny obsažené prvky roztaženy vertikálně, jak lze vidět nahoře. StackPanel toho dosahuje nastavením vlastností HorizontalAlignment nebo VerticalAlignment u jeho obsažených prvků na hodnotu Stretch, ale pokud chcete, jde to snadno změnit. Podívejte se na další ukázku, kde je použit stejný kód jako v předchozí ukázce, jen tentokrát jsme nastavili hodnotu VerticalAlignment pro každý obsažený prvek.

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

Používáme hodnoty Top, Center a Bottom k umístění tlačítek do hezkého vzoru. To samé můžeme provést s vertikálně řazeným StackPanelem, kde u obsažených prvků použijeme vlastnost HorizontalAlignment:

<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 můžete vidět, prvky jsou stále seřazeny odshora dolů, ale místo toho, aby měly stejnou šířku, každý prvek je zarovnaný doleva, doprava nebo na střed.

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!