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
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Sostituire la GitHub Action di login su private registry
Semplificare il deployment di siti statici con Azure Static Web App
Evitare la command injection in un workflow di GitHub
Sfruttare lo streaming di una chiamata Http da Blazor
Potenziare Azure AI Search con la ricerca vettoriale
Implementare il throttling in ASP.NET Core
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Usare le collection expression per inizializzare una lista di oggetti in C#
Disabilitare automaticamente un workflow di GitHub
Migrare una service connection a workload identity federation in Azure DevOps