Procedendo sulla scia degli script visti nelle settimane precedenti, oggi affrontiamo un altro dei temi caldi per quanto riguarda lo sviluppo sul mondo desktop: da sempre infatti, spesso le applicazioni (soprattutto quelle in ambito enterprise), hanno fatto uso di componenti come i tab e la ribbon in generale per mostrare menù e pulsanti diversi in base al contesto.
Replicare questo comportamento, con la Universal Windows Platform, non era altrettanto semplice come lo è stato in passato per WPF, ad esempio, in quanto non è mai esistito un controllo che permettesse di avere meccanismi simili ed il tutto andava gestito manualmente. Con l'avvento del Windows Community Toolkit è stato introdotto il nuovo controllo XAML TabView, che permette appunto la realizzazione di un menù a tab come, ad esempio, quello di Microsoft Edge.
<controls:TabView TabWidthBehavior="Equal" CanCloseTabs="True" IsCloseButtonOverlay="True" CanDragItems="True" CanReorderItems="True" AllowDrop="True"> <controls:TabView.ItemHeaderTemplate> <DataTemplate> <TextBlock Text="{Binding Title}" /> </DataTemplate> </controls:TabView.ItemHeaderTemplate> <controls:TabViewItem Header="ASPItalia.com"> <TextBlock Padding="16">Questo è il tab principale.</TextBlock> </controls:TabViewItem> <controls:TabViewItem Header="WinRTItalia.com"> <TextBlock Padding="16">Questo è un secondo tab</TextBlock> </controls:TabViewItem> </controls:TabView>
Come si può vedere dall'esempio riportato qui sopra, siamo andati ad aggiungere il controllo dicendogli di creare già due tab, attraverso il controllo TabViewItem, che sfruttano lo stesso template dell'header, impostato tramite la proprietà ItemHeaderTemplate, e che possono essere ordinati, spostati e chiusi tramite le proprietà CanReorderItems, CanDragItems e CanCloseTabs. Il risultato finale sarà qualcosa di simile al seguente:
Eventualmente, poiché spesso si lavora facendo uso di pattern MVVM, è anche possibile sfruttare la proprietà ItemsSource per creare una lista di TabViewItem attraverso il binding con una proprietà del ViewModel:
<controls:TabView ItemsSource="{Binding TabItemCollection}" ...>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare alias per tipi generici e tuple in C#
Gestione dei nomi con le regole @layer in CSS
Escludere alcuni file da GitHub Secret Scanning
Code scanning e advanced security con Azure DevOps
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Potenziare la ricerca su Cosmos DB con Full Text Search
Implementare l'infinite scroll con QuickGrid in Blazor Server
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Proteggere le risorse Azure con private link e private endpoints
Eliminare una project wiki di Azure DevOps
Gestione dell'annidamento delle regole dei layer in CSS
Recuperare App Service cancellati su Azure
I più letti di oggi
- Build 2015: segui con noi tutte le novità per gli sviluppatori in diretta da San Francisco
- Speciale Windows Live Services: come integrarli nelle proprie applicazioni
- Rilasciata la RTM di SQL Server 2012, la versione Express subito in download
- Build 2014: tutte le novità per gli sviluppatori in diretta da San Francisco
- .NET Managed provider per MySQL
- WS-I approva Basic Profile 1.0
- Due regali dal Tech-Ed USA 2004: WSE 2.0 e VS 2005 Team System
- VS 2005 e SQL Server 2005 Express da scaricare
- Microsoft aggiorna WinFS beta 1 per VS 2005
- Utilizzare CLEditor per consentire l'input di HTML in ASP.NET MVC