我想检查用户是否设置了浅色或深色主题.是否可以在
Windows Phone 8.1(商店应用程序)中以编程方式执行此操作.
在
MSDN,您将找到示例代码,您可以使用它们来确定当前主题 – 通过比较资源.例如:
private bool IsDarkTheme() { return (double)Application.Current.Resources["PhoneDarkThemeOpacity"] > 0; }
但是 – 我在WP8.1运行时遇到了运行上述行的一些问题 – 它无法找到所请求的密钥.事实证明 – 上面的代码将工作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或通过HighContrast值扩展您自己创建的ThemeResource来实现.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。