我想檢查用戶是否設置了明亮或黑暗的主題。是否可以在Windows Phone 8.1(商店應用程序)中以編程方式執行此操作。如何以編程方式檢查Windows Phone 8.1中當前設置的主題?
6
A
回答
7
在這裏MSDN您可以找到示例代碼,您可以通過比較資源來確定當前主題。例如:
private bool IsDarkTheme()
{ return (double)Application.Current.Resources["PhoneDarkThemeOpacity"] > 0; }
但是 - 我已經在WP8.1 Runtime中運行上面的一行代碼時遇到了一些問題 - 它找不到請求的密鑰。事實證明 - 上述代碼將工作only on WP8.1 Silverlight (also WP8.0)。
但(再次),沒有站在你的方式to define your own ThemeResource並檢查它的狀態:
在App.xaml中 - 定義一些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>
然後你可以使用例如財產在你的代碼:
public bool IsDarkTheme { get { return (bool)Application.Current.Resources["IsDarkTheme"]; } }
還要注意的是,在某些情況下,你可能需要檢查HighContrast - 根據MSDN,您可以通過檢查AccessibilitySettings class或擴展您自己創建的ThemeResource由高對比度值。
3
要檢查哪些主題是積極的,你可以使用Application對象的RequestedTheme財產MSDN
var isDark = Application.Current.RequestedTheme == ApplicationTheme.Dark;
相關問題
- 1. 如何在Windows 8.1中以編程方式更改當前的Windows主題?
- 2. 如何以編程方式更改當前的Windows主題?
- 3. 在Windows Phone 8.1中以編程方式檢測重新啓動
- 4. Windows Phone:如何以編程方式設置TimeSpanPicker的值?
- 5. 如何以編程方式查詢Windows上Apache TomCat7的當前內存設置?
- 6. 如何以編程方式在Windows 8.1應用程序中設置起始頁
- 7. 如何以編程方式獲取/設置當前位置?
- 8. 如何在wordpress中以編程方式設置主題?
- 9. 如何在Android中以編程方式設置App主題?
- 10. 在Windows Phone 8.1中的AppBarButton主題
- 11. 如何在Windows Phone 8.1中獲取當前位置的當前貨幣代碼
- 12. 如何以編程方式在Windows 8.1手機中查找imei號碼?
- 13. 如何以編程方式爲UIPageControl設置當前頁面?
- 14. Drupal:如何以編程方式設置主題語言?
- 15. Windows Phone 7音量設置以編程方式
- 16. 如何在Windows Phone 7中以編程方式設置鎖定屏幕圖像?
- 17. Windows Phone 8.1的自定義主題
- 18. 如何以編程方式在Android中獲取當前主題的顏色(Xamarin)
- 19. 如何以編程方式將Windows Phone 7的鍵盤設置爲大寫?
- 20. 如何以編程方式檢查PNRP設置?
- 21. 如何以編程方式在Windows 8.1中滾動視圖?
- 22. 如何以編程方式獲取android中的當前位置?
- 23. 如何以編程方式檢測windows phone 7/8設備品牌版本?
- 24. 設備主題檢測在Windows Phone的
- 25. 如何爲windows phone 8.1項目設置編譯指令?
- 26. 如何在Windows Phone 10中以編程方式檢測飛行模式
- 27. Windows Phone 8.1狀態欄主題
- 28. HOWTO:以編程方式添加AppBarCommand到Windows Phone 8.1的應用程序
- 29. 如何在Android中以編程方式將樣式和主題設置爲linearlayout?