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
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Creare una libreria CSS universale - Rotazione degli elementi
Utilizzare una qualunque lista per i parametri di tipo params in C#
Utilizzare DeepSeek R1 con Azure AI
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Implementare l'infinite scroll con QuickGrid in Blazor Server
Effettuare il refresh dei dati di una QuickGrid di Blazor
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Supportare la sessione affinity di Azure App Service con Application Gateway
Eseguire i worklow di GitHub su runner potenziati
Aggiornare a .NET 9 su Azure App Service
Gestire la cancellazione di una richiesta in streaming da Blazor