Windows phone 7 如何在WP7中检测主题何时更改?

Windows phone 7 如何在WP7中检测主题何时更改?,windows-phone-7,windows-phone-7.1,Windows Phone 7,Windows Phone 7.1,我的应用程序完全支持主题。当我的应用程序被停用,用户将主题从黑暗变为光明(比方说)并返回到我的应用程序时,主题不会被刷新。即使手机主题是浅的,我的应用程序仍然是暗的 我做了一些尝试,但他们报告了相同的值。 我声明了一个名为isDarkThemeSelected的变量,将该值保存在deactivated event中,更改了主题,然后重新输入到我的应用程序中。但当激活的事件被提升时,变量值仍然保持不变 您有什么解决方案吗?将此代码添加到主页面构造函数中: var v = (Visibility)R

我的应用程序完全支持主题。当我的应用程序被停用,用户将主题从黑暗变为光明(比方说)并返回到我的应用程序时,主题不会被刷新。即使手机主题是浅的,我的应用程序仍然是暗的

我做了一些尝试,但他们报告了相同的值。 我声明了一个名为isDarkThemeSelected的变量,将该值保存在deactivated event中,更改了主题,然后重新输入到我的应用程序中。但当激活的事件被提升时,变量值仍然保持不变


您有什么解决方案吗?

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

var v = (Visibility)Resources["PhoneLightThemeVisibility"];
Debug.WriteLine("Using " + (v == Visibility.Visible ? "light" : "dark") + " theme");
(它检测当前主题并将其写入输出窗口。)

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


编辑:这似乎并不总是有效的,因为存在一个错误。更改主题后导航回应用程序时,主题保持不变。只有当用户从应用程序列表重新启动应用程序时,才会应用新的主题。

您是否在导航出应用程序时备份数据,如果是的话……是否备份了主题,这可能会导致类似的问题。感谢您的回复,我尝试了相同的代码,它提供了正确的主题,但当我的应用程序被停用,用户更改了主题并激活了我的应用程序时,这一次会提供错误的主题信息。那么,您在错误的位置运行此代码。您应该注意到主题不会立即更改,而是在上一次启动时重新激活主题,然后在呈现UI至少一次后更改为新主题。无论如何,不必检查主题,除非您的应用程序设计得非常糟糕。@Jorgensen,在Mango设备中,我观察到一个错误,资源变量值没有改变。但同样的解决方案也适用于Wp7.0。所以我想检查这是真的bug还是我的错误代码。