Voglio verificare se l'utente ha impostato un tema chiaro o scuro. È possibile farlo a livello di programmazione in Windows Phone 8.1 (app store).Come controllare in modo programmatico il tema attualmente impostato in Windows Phone 8.1?
risposta
Qui a MSDN troverete codici di esempio, che è possibile utilizzare per determinare il tema corrente, confrontando le risorse. Per esempio:
private bool IsDarkTheme()
{ return (double)Application.Current.Resources["PhoneDarkThemeOpacity"] > 0; }
Ma - ho enocuntered alcuni problemi che eseguono la riga sopra a WP8.1 runtime - non potrebbe trovare la chiave richiesto. Come si è scoperto - il codice sopra funzionerà only on WP8.1 Silverlight (also WP8.0).
Ma (ancora una volta), nulla si trova sulla strada to define your own ThemeResource e verificare che sia stato:
In app.xaml - definire alcuni ThemeResources:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<x:Boolean x:Key="IsDarkTheme">false</x:Boolean>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<x:Boolean x:Key="IsDarkTheme">true</x:Boolean>
</ResourceDictionary>
<ResourceDictionary x:Key="Default">
<x:Boolean x:Key="IsDarkTheme">false</x:Boolean>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
Quindi è possibile utilizzare ad esempio un immobile nel codice:
public bool IsDarkTheme { get { return (bool)Application.Current.Resources["IsDarkTheme"]; } }
si noti inoltre che in alcuni casi potrebbe essere necessario verificare la presenza di HighContrast - in base a MSDN, è possibile farlo selezionando AccessibilitySettings class o estendere il proprio valore creato ThemeResource entro valori di Contrasto.
Per controllare quale tema è attivo è possibile utilizzare RequestedTheme proprietà dell'oggetto Application MSDN
var isDark = Application.Current.RequestedTheme == ApplicationTheme.Dark;
- 1. Differenza tra Windows Phone 8.1 e Windows Phone Silverlight 8.1
- 2. Emulatore Windows Phone 8.1 in Windows 10
- 3. Windows Phone 8.1 Store VS Windows Phone 8.1 Silverlight
- 4. Windows Phone 8.1 IRC
- 5. Effettuare una chiamata in Windows Phone 8.1
- 6. Quando controllare a livello di programmazione le modifiche ai temi in Windows Phone 8.1
- 7. File Picker in Windows Phone 8.1
- 8. Stato dispositivo in Windows Phone 8.1
- 9. Come chiudere un'applicazione Windows Phone 8.1
- 10. Come iniziare con Windows Phone SDK 8.1?
- 11. Problemi con l'emulatore di Windows Phone 8.1
- 12. Strani risultati in AutoSuggestBox in Windows Phone 8.1
- 13. Windows Phone 8.1 o Windows Phone Silverlight 8.1: manca la documentazione su MSDN?
- 14. Aggiunta regola firewall su Windows Phone 8.1
- 15. Come raccogliere i registri delle applicazioni in Windows Phone 8.1?
- 16. Windows Phone 8.1 dropdown cordova non funziona
- 17. Ottenere CivicAddress su Windows Phone 8.1
- 18. Windows Phone 8.1 (WinRT): selettore ciclico personalizzato
- 19. ID univoco del dispositivo in Windows Phone 8.1
- 20. Windows Phone 8.1: Verifica connessione Internet
- 21. Riferimento servizio SOAP in Windows Phone 8.1 Applicazione universale
- 22. nuove API per Windows Phone 8.1
- 23. Dimensioni minime per pulsanti in Windows Phone 8.1
- 24. Condivisione del rendering all'immagine bitmap in windows phone 8.1
- 25. Nascondi barra di stato in Windows Phone 8.1 Universal Apps
- 26. Come impostare il timeout per l'operazione di richiesta del client http in windows phone 8.1/Windows 8.1
- 27. Ruota l'immagine prima di salvare in Windows Phone 8.1
- 28. Webview BaseURL in Xamarin.Forms su UWP e Windows Phone 8.1
- 29. ContactPicker non funziona in Windows Phone 8.1 di Silverlight
- 30. L'app si arresta in modo anomalo senza generare eccezioni in Windows Phone 8.1 xaml