TOC

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

Panels:

The DockPanel control

A DockPanel megkönnyíti a tartalom dokkolását mind a négy irányban (fent, alul, bal és jobb oldalon). Ez sok esetben nagyszerű választás, amikor az ablakot több területre szeretné osztani. Különösen azért, mert alapértelmezés szerint a DockPanel utolsó eleme - kivéve, ha ez a funkció kifejezetten le van tiltva - automatikusan kitölti a tér fennmaradó részét (középen).

Amint azt a WPF számos más paneljénél láttuk, kihasználhatjuk a panel lehetőségeit egy csatolt tulajdonságával, ebben az esetben a DockPanel.Dock tulajdonsággal, amellyel meghatározzuk, hogy melyik irányba kívánjuk a gyermekvezérlőt dokkolni. Ha ezt nem használjuk, az első vezérlő(k) balra lesznek dokkolva, az utolsó pedig a fennmaradó helyet foglalja el. Íme egy példa a használatára:

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

Mint már említettük, nem rendelünk dokkoló pozíciót az utolsó gyermekhez, mert ez automatikusan középre helyezi a vezérlőt, lehetővé téve a fennmaradó hely kitöltését. Azt is láthatjuk, hogy a középpont körül elhelyezett vezérlők csak annyi helyet foglalnak el, amennyire szükségük van - minden más a középső pozícióra marad. Ezért is van, hogy a jobb oldali gomb egy kicsit több helyet foglal el, mint a bal oldali - a több karakterből álló szöveg egyszerűen több helyet igényel.

Az utolsó dolog, amit valószínűleg észreveszünk, hogy a tér hogyan oszlik meg. Például a felső gomb nem kapja meg az összes felső helyet, mert a bal gomb egy részét igénybe veszi. A DockPanel a kódban elfoglalt pozíciójuk alapján dönti el, hogy melyik vezérlőt részesítse előnyben. Ebben az esetben a bal gomb elsőbbséget élvez, mert az első helyen áll a kódban. Szerencsére ez azt is jelenti, hogy nagyon könnyű ezen változtatni, amint azt a következő példában látni fogjuk. Egy kicsit kiegyenlítettük a helyet azáltal, hogy szélességet, vagy magasságot rendeltünk a gyermekvezérlőkhöz:

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

A felső és alsó vezérlők mostmár elsőbbséget élveznek a bal és a jobb oldali vezérlőkkel szemben, és mindegyik 50 képpontot foglal el magasságban vagy szélességben. Ha az ablakot nagyítjuk vagy kicsinyítjük, azt is látni fogjuk, hogy ez a statikus szélesség / magasság ugyanaz marad, csak a középső terület növekszik vagy csökken az ablak átméretezése során.

LastChildFill

Mint már említettük, az alapértelmezett viselkedés az, hogy a DockPanel utolsó gyermeke elfoglalja a hely fennmaradó részét, de ez letiltható a LastChildFill használatával. Íme egy példa, ahol letiltjuk, és ugyanakkor megmutatjuk, hogy egynél több vezérlőt is dokkolhatunk ugyanarra az oldalra:

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

A fenti példában két vezérlőt rögzítettünk balra, kettőt jobbra, és ezzel egyidejűleg kikapcsoljuk a LastChildFill tulajdonságot. Ez üres helyet hagy a középpontban, ami bizonyos esetekben előnyösebb.


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!