This article is currently in the process of being translated into Hungarian (~99% done).
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.