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
Il nuovo controllo Range di Blazor 9
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Ottimizzare le performance usando Span<T> e il metodo Split
Generare una User Delegation SAS in .NET per Azure Blob Storage
La gestione della riconnessione al server di Blazor in .NET 9
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Gestire progetti NPM in .NET Aspire
Interagire con Azure DevOps tramite MCP Server
Eseguire script pre e post esecuzione di un workflow di GitHub
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Anonimizzare i dati sensibili nei log di Azure Front Door
Testare il failover sulle region in Azure Storage


