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
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Effettuare il binding di date in Blazor
Effettuare il refresh dei dati di una QuickGrid di Blazor
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Scrivere selettori CSS più semplici ed efficienti con :is()
Filtering sulle colonne in una QuickGrid di Blazor
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Gestire la cancellazione di una richiesta in streaming da Blazor