c# - Windows Phone 8.1 : Change background on phone theme change (Application. 当前.资源为空)

标签 c# themes windows-phone-8.1

我想检测我的应用程序中的主题更改,以便我可以相应地更改背景图像。 遗憾的是 WP7 示例包含

(Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] ==
Visibility.Visible

抛出异常:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.ni.dll but was not handled in user code WinRT information:
Cannot find a resource with the given key.
Additional information: Unspecified error

调试时发现 Application.Current.Resources 有 0 个元素。

如果结果证明我搞砸了一些东西,但在运行此处找到的 WP7 示例(在 WP8.1 项目中)时,我会非常高兴:How to apply theme resources for Windows Phone它导致了与之前相同的异常。
有谁知道 WP8.1 解决我的问题吗? :)

其他信息:
我尝试在 OnNavigedTo 部分、页面构造函数中使用上述代码,甚至尝试在按钮单击中使用它,但它们都产生了相同的结果。
自动更改手机主题后,其他内容(例如字体颜色)实际上会发生变化。

最佳答案

如果您使用的是 Windows Phone 8.1(不是 Windows Phone 8.1 silverlight),请使用以下代码

if (App.Current.RequestedTheme == ApplicationTheme.Dark)
       {}

希望这有帮助

关于c# - Windows Phone 8.1 : Change background on phone theme change (Application. 当前.资源为空),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014795/

相关文章:

javascript - href onclick 在 Windows Phone cordova 应用程序中不起作用

c# - 正则表达式条件值

c# - 将 double 转换为整数

c# - Gremlin.NET 是否支持提交异步字节码?

android - java.lang.UnsupportedOperationException : Can't convert to dimension: type=0x12 异常

windows-phone-8.1 - 使用 Windows Phone 8.1 获取运营商名称(蜂窝移动运营商名称)

c# - Windows 运行时 ListView 的随机访问数据虚拟化

c# - ASP.Net 请求生命周期 - Application_BeginRequest

.net - ASP.NET 根据 URL 设置主题

Eclipse 的包资源管理器背景颜色遵循 Windows 主题。我想在不改变 Windows 主题的情况下改变颜色。可能的?