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
Implementare l'infinite scroll con QuickGrid in Blazor Server
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
C# 12: Cosa c'è di nuovo e interessante
Creare form tipizzati con Angular
Installare le Web App site extension tramite una pipeline di Azure DevOps
.NET Conference Italia 2023
Utilizzare le collection expression in C#
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Eseguire query verso tipi non mappati in Entity Framework Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare la session affinity con Azure Container Apps