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
Miglioramenti nelle performance di Angular 16
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Eseguire una query su SQL Azure tramite un workflow di GitHub
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Gestire la cancellazione di una richiesta in streaming da Blazor
Usare lo spread operator con i collection initializer in C#
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare Azure AI Studio per testare i modelli AI
Eseguire query verso tipi non mappati in Entity Framework Core
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode