This article has been localized into Czech by the community.
Ovládací prvek StackPanel
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.