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
Creare una libreria CSS universale - Rotazione degli elementi
Definire stili a livello di libreria in Angular
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Recuperare App Service cancellati su Azure
Utilizzare Copilot con Azure Cosmos DB
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
La gestione della riconnessione al server di Blazor in .NET 9
Creare una libreria CSS universale: i bottoni
Fornire parametri ad un Web component HTML