我想检查用户是否设置了明亮或黑暗的主题。是否可以在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?