如何检测WP7中主题何时更改?

时间:2011-11-14 21:49:09

标签: windows-phone-7 windows-phone-7.1

我的应用完全可以识别主题。当我的应用程序被停用并且用户将主题从黑暗变为浅(让我们说)并返回到我的应用程序时,主题不会刷新。即使手机主题很轻,我的应用仍然保持黑暗。

我做了一些尝试,但他们报告了相同的值。 我声明了一个名为isDarkThemeSelected的变量,将值保存在已停用的事件中,更改了主题,并返回到我的应用程序中。但是当激活事件被激活时,变量值仍然保持不变。

你有解决方案吗?

1 个答案:

答案 0 :(得分:6)

将此代码添加到主页面构造函数中:

var v = (Visibility)Resources["PhoneLightThemeVisibility"];
Debug.WriteLine("Using " + (v == Visibility.Visible ? "light" : "dark") + " theme");

(它检测当前主题并写入Output窗口。)

然后启动应用程序,查看Visual Studio中的输出,关闭应用程序,更改主题,启动应用程序并再次查看。如果它第一次和第二次说不同的东西,那么你的应用程序就不像你想象的那样具有主题意识。

修改:由于Mango bug,这似乎并不总是有效。在更改主题后导航回应用时,主题保持不变。只有当用户从应用列表中重新启动应用时才会应用新主题。