5 pagine in totale: <<Indietro 1 2 3 4 [5]
Grid
Grid, tra i pannelli esaminati, è quello che offre il layout più complesso, e organizzandolo in righe e colonne, la posizione degli elementi figli è determinata tramite l'attached property Column e Row.
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Column="1" Grid.Row="0">seconda colonna prima riga</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="1">terza colonna seconda riga</TextBlock>
</Grid>
L'altezza della righe e la larghezza delle colonne può essere specificata impostando la dimensione in pixel, in alternativa in base al proprio contenuto con Auto oppure proporzionalmente allo spazio rimanente, tramite * (Star).
L'attached property IsSharedSizeScope impostata a True crea un contesto nel quale più Grid possono condividere le dimensioni di righe e colonne; in questo caso utilizzando "*" Star otteniamo il solito comportamento di "Auto".
La proprietà SharedSizeGroup esposta da righe e colonne forma i gruppi di condivisione in base ad un nome personalizzato.
<DockPanel Grid.IsSharedSizeScope="True">
<!--primo Grid-->
<StackPanel Orientation="Vertical" DockPanel.Dock="Top">
<Grid ShowGridLines="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="FirstColumn" Width="300" />
<ColumnDefinition SharedSizeGroup="SecondColumn" Width="400"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="170" SharedSizeGroup="FirstRow"/>
</Grid.RowDefinitions>
<Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0" Width="200" Height="100"/>
<Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0" Width="150" Height="100"/>
<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">Prima colonna</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Seconda colonna</TextBlock>
</Grid>
<!--secondo Grid-->
<Grid ShowGridLines="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="FirstColumn"/>
<ColumnDefinition SharedSizeGroup="SecondColumn"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" SharedSizeGroup="FirstRow"/>
</Grid.RowDefinitions>
<Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0"/>
<Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0"/>
<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">Prima Colonna</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Seconda Colonna</TextBlock>
</Grid>
</StackPanel>
</DockPanel>Conclusione
Tutti gli elementi fin qua esaminati consentono, combinati assieme, di ottenere virtualmente il layout necessario per la maggior parte delle applicazioni, applicazioni che comunque non sarebbe possibile realizzare se WPF non fornisse dei controlli per l'interazione con l'utente.
WPF offre comunque più di una semplice collezione di controlli: un ricco sistema di Style e Template ci consente di creare interfacce complesse e graficamente accattivanti, ma allo stesso tempo coerenti e facilmente mantenibili.
Il sistema di Binding permette virtualmente di associare qualsiasi proprietà ad un fonte dati sia essa proveniente da un db, un xml o una proprietà di un altro controllo.
Queste caratyeristiche verrano trattate in articoli di prossima pubblicazione, ma risulta fondamentale comunque comprendere come gli elementi dell'interfaccia vengono organizzati e presentati all'utente.
5 pagine in totale: <<Indietro 1 2 3 4 [5]
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 4
- Pagina 5
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!
