All'interno dell'SDK (http://www.microsoft.com/downloads/details.aspx?FamilyID=8d933343-038f-499c-986c-c3c7e87a60b3&DisplayLang=it) è disponibile il controllo GridSplitter che rende ridimensionabili le righe e le colonne di un Grid.
Tale controllo è molto semplice da utilizzare, dopo aver aggiunto al progetto il riferimento all'assembly System.Window.Controls.dll, che solitamente si trova nella cartella di installazione dell'SDK, sotto Microsoft SDKs\Silverlight\v2.0\Libraries\Client\System.Windows.Controls.dll, è necessario dichiare il namespace nel nodo principale dell'UserControl:
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
Nell'esempio è stato dichiarato il nome "controls".
Successivamente è sufficiente definire il controllo e posizionarlo all'interno del Grid come un qualunque altro elemento attribuendogli la riga e la colonna desiderata:
<controls:GridSplitter Grid.Column="0" Grid.Row="1" Grid.RowSpan="2"></controls:GridSplitter>
Per estenderne la grandezza a più righe o colonne è possibile utilizzare, come di consueto, le attached property Grid.RowSpan e Grid.ColumnSpan.
Qualora si desideri rendere ridimensionabili le righe di un controllo Grid è necessario impostare la proprietà HorizontalAlignment a Stretch ed assegnare un valore specifico alla proprietà VerticalAlignment, in modo da definire una precisa posizione nella cella della griglia:
<controls:GridSplitter Grid.Row="1" Background="Gray" Grid.Column="0" VerticalAlignment="Top" Grid.ColumnSpan="3" HorizontalAlignment="Stretch"></controls:GridSplitter>
Come gli altri controlli, GridSplitter è completamente personalizzabile attraverso la gestione del Template e può assumere l'aspetto che si desidera.
Per coloro che desiderano studiare o modificare questo controllo è possibile utilizzare il codice sorgente scaricabile insieme al Silverlight Toolkit all'indirizzo http://silverlight.codeplex.com/.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.