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
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Creare un webhook in Azure DevOps
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Generare file per il download da Blazor WebAssembly
Le novità di Angular: i miglioramenti alla CLI
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Utilizzare il trigger SQL con le Azure Function
Creazione di componenti personalizzati in React.js con Tailwind CSS
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Cambiare la chiave di partizionamento di Azure Cosmos DB