Windows Phone 8.1:更改手机主题更改的背景(Application.Current.Resources为空)

时间:2014-06-03 12:07:00

标签: c# themes windows-phone-8.1

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

的WP7示例
(Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] ==
Visibility.Visible

抛出异常说:

  

类型' System.Runtime.InteropServices.COMException'的例外情况   发生在mscorlib.ni.dll但未在用户代码WinRT中处理   信息:
无法找到具有给定密钥的资源。
附加   信息:未指定的错误

在调试时,事实证明Application.Current.Resources有0个元素。

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

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

1 个答案:

答案 0 :(得分:6)

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

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

希望这会有所帮助