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

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

Nell'esempio precedente utilizzando le attached property Top e Left, posizioniamo i margini del bottone ad un offset di 20 pixel dal margine sinistro e di 50 pixel da quello superiore del Canvas.
Esistono inoltre altre due attached property, Right e Botton, che ci permettono di specificare l'offset rispetto al margine inferiore e destro, ma se le attached property Top e Left sono impostate, quest'ultime hanno la precedenza.

Come abbiamo detto, il pannello Canvas non esegue nessun tipo di posizionamento sui propri figli, ma si limita a renderizzarli nella posizione specificata, anche se già occupata da più elementi.
Per determinare l'ordine di visualizzazione possiamo impostare l'attached property ZIndex e ne consegue che l'elemento figlio con il valore più alto viene visualizzato sopra gli altri.

<Canvas Width="200" Height="200">
    <Canvas.Background>
        <RadialGradientBrush RadiusX="1.5" RadiusY="1" Center="0.9,1.5" GradientOrigin="0.9,1.5">
            <RadialGradientBrush.GradientStops>
                <GradientStop Color="#FF473218" Offset="0"/>
                <GradientStop Color="#FF978065" Offset="1"/>
            </RadialGradientBrush.GradientStops>
        </RadialGradientBrush>
    </Canvas.Background>
    <Button Canvas.Left="20" Canvas.Top="50" Canvas.ZIndex="2" >Button 1</Button>
    <!--senza ZIndex questo bottone nasconderebbe il precedente-->
    <Button Canvas.Left="20" Canvas.Top="50" Canvas.ZIndex="1" >Button 2</Button>
</Canvas >

StackPanel

Lo StackPanel forma una semplice pila con gli elementi figli, la cui direzione della pila è determinata dalla proprietà Orientation, impostabile su Horizontal o Vertical (valore predefinito).

<StackPanel>
    <StackPanel.Background>
        <RadialGradientBrush RadiusX="1.5" RadiusY="1.1" Center="0.9,1.5" GradientOrigin="0.9,1.5">
            <RadialGradientBrush.GradientStops>
                <GradientStop Color="#FF473218" Offset="0"/>
                <GradientStop Color="#FF978065" Offset="1"/>
            </RadialGradientBrush.GradientStops>
        </RadialGradientBrush>
    </StackPanel.Background>
    <!--Allineamento-->
    <Button HorizontalAlignment="Left">Button 1</Button>
    <Button HorizontalAlignment="Right">Button 2</Button>
    <Button HorizontalAlignment="Left">Button 3</Button>
    <Button HorizontalAlignment="Right">Button 4</Button>
    <!--Nessuna impostazione-->
    <Button>Button 5</Button>
    <Button>Button 6</Button>
    <!--Margine-->
    <Button Margin="3">Button 7</Button>
    <Button Margin="10,0,10,0">Button 8</Button>
</StackPanel >

Posizionamento a pila con StackPanel

L'esempio precedente mostra l'uso di uno StackPanel al fine di formare una pila di bottoni, facendo anche uso dell'allineamento e dei margini.

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