Spesso ci troviamo a dover personalizzare l'aspetto dei controlli,ad esempio per quesioni di branding.
In questi casi ci troviamo di fronte ad una scelta: limitare la personalizzazione o creare uno Style che ridefinisca il ControlTemplate.
Quest'ultima era la scelta più comune in un'app Windows Phone, prima di WinRT.
Adesso, sfruttando le ThemeResorce è possibile personalizzare molti più aspetti: ad esempio, possiamo cambiare il colore di sfondo dello stato pressed di un pulsane senza dove ridefinire il template. Sarà sufficiente aggiungere un nuovo dictionary al nostro progetto ed eseguire l'override delle risorse interessate.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App4"> <ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Default"> <SolidColorBrush x:Key="ButtonPressedBackgroundThemeBrush" Color="Yellow"></SolidColorBrush> </ResourceDictionary> </ResourceDictionary.ThemeDictionaries> </ResourceDictionary>
Naturalmente è necessario conoscere la struttura del template e le risorse interessante. Procedendo in questo modo possiamo limitare il numero di Style utilizzati dall'applicazione, così da azzerare i problemi di incoerenza della UI.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare moduli CSS in React
Utilizzare Tailwind CSS all'interno di React: installazione
Creare gruppi di client per Event Grid MQTT
Usare le collection expression per inizializzare una lista di oggetti in C#
Le novità di Angular: i miglioramenti alla CLI
Creare alias per tipi generici e tuple in C#
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Utilizzare le collection expression in C#
Disabilitare automaticamente un workflow di GitHub