Uno degli aspetti da tenere in considerazione con le applicazioni Windows Phone è che i temi di sistema sono due, uno chiaro e l'altro scuro. Se optiamo per tenere la nostra applicazione con il tema scelto dall'utente (per dare la sensazione che l'app si integri con il sistema), è necessario prestare attenzione al fatto che le immagini vanno generate per entrambe le versioni: con colore di riempimento bianco per il tema scuro e, viceversa, con colore snero per il tema chiaro.
Nel già citato Coding4FunToolkit, disponibile come package NuGet, è disponibile un converter chiamato ThemedImageConverter, che può essere registrato comodamente in app.xaml, così da essere disponibile in tutte le pagine:
<Application ... xmlns:c4f="clr-namespace:Coding4Fun.Phone.Controls.Converters;assembly=Coding4Fun.Phone.Controls"> <Application.Resources> <c4fControls:ThemedImageConverter x:Key="ThemedImageConverter"/> ... </Application.Resources> </Application>
A questo punto, sarà sufficiente un codice come questo per poter utilizzare il converter:
<Image Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor} }" DataContext="/MyProject;component/Images/{0}/ApplicationBar.Cancel.pn" />
L'effetto sarà quello di andare a cercare, nella directory /Images/Light o /Images/Dark, l'immagine giusta per il tema in uso.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare velocemente pagine CRUD in Blazor con QuickGrid
Eliminare una project wiki di Azure DevOps
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Applicare un filtro per recuperare alcune issue di GitHub
Usare il colore CSS per migliorare lo stile della pagina
Selettore CSS :has() e i suoi casi d'uso avanzati
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Filtering sulle colonne in una QuickGrid di Blazor
Ottimizzare le performance usando Span<T> e il metodo Split