Layout e gestione degli elementi d'interfaccia in Windows Presentation Foundation

5 pagine in totale: <<Indietro 1 2 3 [4] 5 Avanti >>

WrapPanel

Il WrapPanel posiziona gli elementi figli in modo sequenziale da destra verso sinistra, passando alla riga successiva se viene raggiunto il margine del contenitore.
Con le proprietà ItemHeight e ItemWidth impostiamo quanto spazio riservare per la visualizzazione di ogni singolo elemento.

<WrapPanel ItemHeight="40" ItemWidth="90">
    <WrapPanel.Background>
        <LinearGradientBrush StartPoint="0.4,-0.6" EndPoint="0.4,2">
            <LinearGradientBrush.GradientStops>
                <GradientStop Color="#FDFF0C00" Offset="0"/>
                <GradientStop Color="#FCFF9A00" Offset="0.35"/>
                <GradientStop Color="#FCFF3800" Offset="0.42"/>
                <GradientStop Color="#FDFFE500" Offset="0.87"/>
                <GradientStop Color="#FCFFFFEA" Offset="1"/>
            </LinearGradientBrush.GradientStops>
        </LinearGradientBrush>
    </WrapPanel.Background>
    <Button HorizontalAlignment="Center" VerticalAlignment="Center">Button 1</Button>
    <Button>Button 2</Button>
    <Button>Button 3</Button>
    <Button>Button 4</Button>
    <Button>Button 5</Button>
    <Button>Button 6</Button>
    <Button>Button 7</Button>
    <Button>Button 8</Button>
</WrapPanel >

Posizionamento a pila con WrapPanel

Possiamo specificare l'orientamento della sequenza utilizzando la proprietà Orientation, il valore predefinito è Horizontal. Impostando la proprietà su Vertical la sequenza procede dall'alto verso il basso, disponendo il proprio contenuto su più colonne una volta raggiunto il limite inferiore.

Esiste una forma specializzata di StackPanel chiamata VirtualizingStackPanel che si dimostra particolarmente utile in scenari dove gli elementi figli da creare dipendono da una fonte dati.
Non potendo determinare a priori il numero degli elementi, potenzialmente numerosi, VirtualizingStackPanel genera solo gli elementi effettivamente visibili.
Questo meccanismo migliora le prestazioni dell'interfaccia utente, evitando al sistema il processo oneroso di generazione di elementi dell'interfaccia che poi non verrano visualizzati.

DockPanel

Con il DockPanel gli elementi figli vengono posizionati lungo uno dei margini del contenitore tramite l'attached property Dock. Ad esempio se impostato su Top, l'elemento viene allineato al margine superiore, Left a sinistra, Right destra e Bottom al margine inferiore.
La posizione degli elementi figlio è determinata dal loro ordine d'inserimento, poiché l'attached property Dock viene valutata sullo spazio rimanente dopo il posizionamento degli elementi precedenti.

<DockPanel LastChildFill="True">
    <Border Height="20px" Background="BurlyWood" BorderBrush="Black" BorderThickness="2" DockPanel.Dock="Top">
        <TextBlock>Testata</TextBlock>
    </Border>     <Border Height="20px" Background="BurlyWood" BorderBrush="Black" BorderThickness="2" DockPanel.Dock="Bottom">
        <TextBlock>Footer</TextBlock>
    </Border>
    <Border Background="Chocolate" BorderBrush="Black" BorderThickness="2" DockPanel.Dock="Top">
        <TextBlock>Centro</TextBlock>
    </Border>
</DockPanel>

Posizionamento con DockPanel

Se la proprietà LastChildFill è impostata a true l'ultimo elemento riempie lo spazio rimanente.

5 pagine in totale: <<Indietro 1 2 3 [4] 5 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC