Margini
La proprietà Margin imposta la distanza tra l'elemento e il suo spazio di visualizzazione che può essere uniforme usando la sintassi Margin="20".
<Button Margin="20">Hello!</Button>
In alternativa possiamo specificare valori indipendenti per il margine sinistro, superiore, destro e inferiore utilizzando come valore Margin="10,5,10,5".
<Button Margin="10,5,10,5">Hello!</Button>
Possiamo inoltre specificare solo due valori per indicare la coppia margine sinistro/destro e la coppia margine superiore/inferiore.
<Button Margin="10,5">Hello!</Button>
Layout System
Dopo la breve analisi delle proprietà che permettono il posizionamento di un elemento, è chiaro come il risultato prodotto dipenda in larga parte da come il loro contenitore alloca lo spazio disponibile per la visualizzazione.
In WPF questi contenitori sono derivati dalla classe astratta Panel e partecipano al processo di misurazione, dimensionamento e posizionamento degli elementi che prende il nome di Layout System.
Senza scendere nel dettaglio dell'implementazione, il Layout System si compone essenzialmente di due passaggi: per primo la misurazione dello spazio desiderato dall'elemento figlio e l'eventuale ridimensionamento, per secondo il posizionamento con la dimensione appena ottenuta.
Il processo è completamente automatico, inizia nel momento in cui l'interfaccia deve essere renderizzata e la durata ed il costo in termini di prestazioni è direttamente proporzionale al numero di elementi contenuti dal Panel e alla complessità del Layout da presentare.
Panel
I componenti che in WPF estendono la classe Panel e controllano il layout dei loro figli sono: Canvas, DockPanel, Grid, StackPanel, VirtualizingStackPanel e WrapPanel. Ognuno di essi fornisce una gestione differente dello spazio di visualizzazione.
Canvas
È il tipo di pannello più semplice e permette di posizionare gli elementi figlio specificandone l'offset dai margini del Canvas. A differenza degli altri pannelli che analizzeremo in seguito è l'unico a non ridimensionare mai gli elementi figli e che ne consente il rendering oltre le proprie dimensioni.
L'elemento figlio informa quindi il Canvas della sua posizione mediante l'utilizzo delle attached property e, come vedremo in seguito, tutti i pannelli ne fanno un largo uso.
<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" >Button 1</Button> </Canvas>

Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 4
- Pagina 5
- Le novità del .NET Framework 3.5 SP1 in Windows Presentation Foundation
- Introduzione a .NET Micro Framework
- Gestire transazioni miste con NTFS in Windows Server 2008
- Windows Presentation Foundation 3.5: 3D interattivo e le altre novità del framework
- Le novità di Communication e Workflow Foundation e la loro cooperazione nel .NET Framework 3.5
- .NET Framework 3.5 e Visual Studio 2008: cosa c'è di nuovo
- Gestione delle eccezioni in Windows Communication Foundation
- Sviluppare workflow sequenziali con WF
- WPF: dal DataBinding ai Template - Terza parte
- WPF: dal DataBinding ai Template - Seconda parte
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!