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
GRPC vs REST con .NET 5
Visual Studio Code per lo sviluppo in team
Inizializzazione asincrona di un servizio allo startup di un'applicazione Blazor
Validare una pipeline YAML senza eseguirla in Azure DevOps
Riconoscimento dei contenuti delle immagini con Azure Logic Apps e Content Moderator
Utilizzare Live metrics con le Azure Functions
Implementare logiche di validazione complesse nelle EditForm di Blazor
A lap around Azure Cognitive Services
Eseguire lo shutdown pulito di un'applicazione ASP.NET Core
Introduzione a Blazor WebAssembly
Eseguire una chiamata asincrona durante la validazione di una form in Blazor
Condividere una variabile tra stage in una pipeline YAML di Azure DevOps