La dark mode è una feature molto richiesta, ma essendo stata messa a disposizione solo nell'ultimo anno, il lavoro del team di Xamarin è stato quello di facilitare l'implementazione nelle applicazioni esistenti. Dalla versione 4.6.0.967 (e con supporto minimo ad iOS 13/Android 10) è possibile stabilire lo stile di un oggetto attraverso la property AppThemeBinding.
<Style TargetType="ContentPage" ApplyToDerivedTypes="True"> <Setter Property="BackgroundColor" Value="{AppThemeBinding Dark={StaticResource BackgroundColor_Dark}, Light={StaticResource BackgroundColor_Light}}"/> </Style>
E' stata inoltre aggiornata la modalità di setting del tema, passando da AppThemeColor ad UserAppTheme:
Application.Current.UserAppTheme = OSAppTheme.Dark; Application.Current.UserAppTheme = OSAppTheme.Light;
Eventualmente è possibile non selezionare nessun tema, lasciando al sistema operativo decidere quale adottare:
Application.Current.UserAppTheme = OSAppTheme.Unspecified;
Tramite il metodo RequestThemeChanged possiamo capire quando, ad esempio, l'utente ha deciso di specificarne uno alternativo:
Application.Current.RequestedThemeChanged += (s, a) => { //... };
Per poter utilizzare questa funzionalità, considerando che è ancora in preview, dobbiamo abilitare l'apposita feature flag all'avvio dell'app di Xamarin Forms:
Forms.SetFlags("AppTheme_Experimental");
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire i null nelle reactive form tipizzate di Angular
Usare il colore CSS per migliorare lo stile della pagina
Potenziare Azure AI Search con la ricerca vettoriale
Eseguire i worklow di GitHub su runner potenziati
Come migrare da una form non tipizzata a una form tipizzata in Angular
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Gestione degli stili CSS con le regole @layer
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Paginare i risultati con QuickGrid in Blazor
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Utilizzare Azure Cosmos DB con i vettori