Come abbiamo visto nello script #74, per migliorare il supporto dei temi nelle Windows Store e nelle Windows Phone app il framework si è arricchito di una nuova markup extension: ThemeResource. Questa markup extension è largamente usata negli Style e nei Template predefiniti del runtime e le relative risorse sono a disposizione per l'utilizzo nelle nostre applicazioni.
Oltre a quelle predefinite, abbiamo la possibilità di creare nostre risorse da associare a ciascun tema, in modo che il runtime le applichi in presenza quindi del tema scelto dall'utente.
Per questa operazione dobbiamo dichiarare le risorse in ThemeDictionaries di ResourceDictionary, in App o nelle Page in modo analogo a quanto facciamo con le tradizionali risorse:
<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Default"> <SolidColorBrush x:Key="Background" Color="Red"/> <x:String x:Key="BackButtonGlyph"></x:String> </ResourceDictionary> <ResourceDictionary x:Key="Light"> <SolidColorBrush x:Key="Background" Color="Black"/> <x:String x:Key="BackButtonGlyph"></x:String> </ResourceDictionary> <ResourceDictionary x:Key="HighContrastBlack"> <SolidColorBrush x:Key="Background" Color="Green"/> <x:String x:Key="BackButtonGlyph"></x:String> </ResourceDictionary> <ResourceDictionary x:Key="HighContrastWhite"> <SolidColorBrush x:Key="Background" Color="White"/> <x:String x:Key="BackButtonGlyph"></x:String> </ResourceDictionary> </ResourceDictionary.ThemeDictionaries> </ResourceDictionary>
In ThemeDictionaries troviamo tante ResourceDictionary quante sono i temi supportati; in ciascun ResourceDictionary dobbiamo inserire le risorse, con la stessa Key, con il valore che vogliamo usare nel tema corrispondente.
Come possiamo vedere nello snippet, oltre ai colori possiamo inserire qualunque oggetto nelle risorse in modo che temi ad alto contrasto, ad esempio, possano addirittura avere altre icone, forme o dimensioni.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Utilizzare database e servizi con gli add-on di Container App
Utilizzare i primary constructor in C#
Eseguire le GitHub Actions offline
Creare form tipizzati con Angular
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Generare token per autenicarsi sulle API di GitHub
Utilizzare le collection expression in C#
C# 12: Cosa c'è di nuovo e interessante
Gestire domini wildcard in Azure Container Apps
Verificare la provenienza di un commit tramite le GitHub Actions
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
I più letti di oggi
- Vuoi incontrare Bill Gates? Viaggia con ASPItalia.com!
- Customizzare il pager del DataGrid
- Stabilire un collegamento VPN tra una Web App e una Virtual Network
- Documentare ASP.NET Web API con Swagger
- Usare i servizi REST di BING per ottenere informazioni sulla posizione dell'utente
- Visual Studio 2005 CTP May