TOC

This article has been localized into Czech by the community.

Panely:

Ovládací prvek DockPanel

Ovládací prvek DockPanel usnadňuje umístění obsahu ve všech čtyřech směrech (nahoře, dole, vlevo a vpravo). To z něj činí skvělou volbu v mnoha situacích, kdy chcete okno rozdělit na konkrétní oblasti, obzvláště proto, že ve výchozím nastavení poslední prvek uvnitř DockPanelu, automaticky vyplní zbývající prostor (střed), pokud tedy není tato funkce zakázána.

Jak jsme viděli u mnoha dalších panelů ve WPF, začnete využívat možnosti panelu použitím jeho připojené vlastnosti, v tomto případě vlastnosti DockPanel.Dock, která rozhoduje, v kterém směru chcete, aby se potomek připojil. Pokud to nepoužijete, první ovládací prvky budou připojeny vlevo, přičemž poslední prvek zabere zbývající prostor. Zde je příklad, jak to použít:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="250" Width="250">
	<DockPanel>
		<Button DockPanel.Dock="Left">Left</Button>
		<Button DockPanel.Dock="Top">Top</Button>
		<Button DockPanel.Dock="Right">Right</Button>
		<Button DockPanel.Dock="Bottom">Bottom</Button>
		<Button>Center</Button>
	</DockPanel>
</Window>

Jak již bylo zmíněno, nepřiřazujeme pozici pro posledního potomka, protože DockPanel automaticky vycentruje prvek, což mu umožní vyplnit zbývající prostor. Také si všimnete, že ovládací prvky kolem středu zabírají pouze tolik místa, kolik potřebují - všechno ostatní je ponecháno pro střední pozici. To je také důvod, proč uvidíte, že tlačítko Vpravo zabírá trochu více místa než tlačítko Vlevo - další znak v textu prostě vyžaduje více pixelů.

Poslední věc, které si pravděpodobně všimnete, je způsob, jakým je prostor rozdělen. Například tlačítko Nahoru nedostane celý horní prostor, protože tlačítko Vlevo zabere jeho část. DockPanel rozhoduje, který prvek má upřednostnit, na základě jejich pozice v kódu. V tomto případě má tlačítko Vlevo přednost, protože je umístěno jako první v kódu. Šťastné je, že to lze velmi snadno změnit, jak uvidíme v dalším příkladu, kde jsme také trochu vyrovnali prostor tím, že jsme přiřadili šířky/výšky potomkům:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="250" Width="250">
	<DockPanel>
		<Button DockPanel.Dock="Top" Height="50">Top</Button>
		<Button DockPanel.Dock="Bottom" Height="50">Bottom</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>	
		<Button>Center</Button>
	</DockPanel>
</Window>

Horní a dolní ovládací prvky nyní mají přednost před levými a pravými ovládacími prvky a všechny zabírají 50 pixelů buď ve výšce, nebo šířce. Pokud okno zvětšíte nebo zmenšíte, uvidíte také, že tato statická šířka/výška zůstává stejná bez ohledu na cokoli - pouze střední oblast se zvětšuje nebo zmenšuje, když měníte velikost okna.

Vlastnost LastChildFill

Jak již bylo zmíněno, výchozí chování je, že poslední potomek DockPanelu zabere zbytek prostoru, ale toto může být zakázáno použitím LastChildFill. Zde je příklad, kde to zakážeme, a zároveň ukážeme schopnost připojit více než jeden ovládací prvek ke stejné straně:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="300" Width="300">
	<DockPanel LastChildFill="False">
		<Button DockPanel.Dock="Top" Height="50">Top</Button>
		<Button DockPanel.Dock="Bottom" Height="50">Bottom</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>
	</DockPanel>
</Window>

V tomto příkladu připojíme dva ovládací prvky vlevo a dva ovládací prvky vpravo, a zároveň vypneme vlastnost LastChildFill. To nám nechá prázdný prostor uprostřed, což může být v některých případech preferováno.


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!