DockPanel
Il DockPanel dispone i controlli in esso contenuti ridimensionandoli ed agganciandoli ad uno dei bordi.
Il bordo a cui agganciare un determinato controllo è impostato tramite l’attached property Dock.
L’ordine con cui vengono definiti i controlli contenuti è importante per il layout definitivo.
Il DockPanel ridimensiona il controllo in base allo spazio a disposizione, così se mettiamo prima il controllo agganciato in alto e,
poi, quello a sinistra, avremo che il controllo in alto avrà una dimensione maggiore dell’altro.
Un esempio di utilizzo del DockPanel è il seguente XAML:
<Window x:Class="DockPanelWindow"
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>
<Button DockPanel.Dock="Top">Alto</Button>
<Button DockPanel.Dock="Left">Sinistra</Button>
<Button DockPanel.Dock="Right">Destra</Button>
<Button DockPanel.Dock="Bottom">Basso</Button>
<Button>No Dock</Button>
</DockPanel>
</Window>
il quale genera il seguente layout:
Per capire il meccanismo di docking dei controlli, scambiamo il primo bottone del
precedente XAMl con il secondo e vediamo che il layout cambia radicalmente:
Il DockPanel ha un duplice comportamento per quanto riguarda i controlli senza
la proprietà Dock impostata: impostando la proprietà LastChildFill a True i controlli senza Dock occupano
tutto lo spazio rimanente del contenitore, mentre impostando
LastChildFill a False i controlli senza Dock mantengono il consueto comportamento.