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
Utilizzare i nuovi piani dedicati di Azure Container Apps
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Implementare il throttling in ASP.NET Core
Eseguire attività basate su eventi con Azure Container Jobs
Usare il versioning con i controller di ASP.NET Core Web API
Utilizzare flat e flatMap per appiattire array innestati in array
Gestione degli environment per il deploy con un workflow di GitHub
Generare token per autenicarsi sulle API di GitHub
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Usare le collection expression per inizializzare una lista di oggetti in C#
Utilizzare i primary constructor in C#
Hosting di componenti WebAssembly in un'applicazione Blazor static