2011-11-14 3 views
6

Mon application est entièrement consciente du thème. Lorsque mon application est désactivée et que l'utilisateur change de thème de sombre à clair (disons) et retourne à mon application, le thème n'est pas actualisé. Même si le thème du téléphone est clair, mon application reste sombre. J'ai fait quelques essais mais ils rapportent les mêmes valeurs. J'ai déclaré une variable appelée isDarkThemeSelected, enregistré la valeur dans un événement désactivé, changé le thème et réintégré mon application. Mais lorsque l'événement activé est augmenté, la valeur de la variable reste la même.Comment détecter quand le thème est modifié dans WP7?

Avez-vous une solution?

+2

Sauvegardez-vous vos données lorsque vous naviguez hors de l'application, si c'est le cas ... est-ce qu'il sauvegarde le thème, ce qui pourrait causer un problème comme celui-là. – Keeano

Répondre

6

Ajouter ce code à votre principal constructeur de page:

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

(Il détecte le thème actuel et écrit à la fenêtre de sortie que l'on est.)

ensuite commencer à l'application, regardez la Sortie dans Visual Studio, fermez l'application, changez le thème, démarrez l'application et regardez à nouveau. Si cela dit des choses différentes la première fois et la deuxième fois, votre application n'est pas aussi consciente que vous le pensez. Il semble que cela ne fonctionne pas toujours en raison d'un Mango bug Le thème reste le même lorsque vous revenir à l'application après avoir changé le thème. Ce n'est que lorsque l'utilisateur redémarre l'application de la liste des applications que le nouveau thème est appliqué.

+1

Merci pour votre réponse, j'ai essayé le même code, il donne le thème approprié, mais lorsque mon application est désactivée et que l'utilisateur modifie le thème et active mon application, cette fois, cela donne de mauvaises informations sur le thème. – Santhu

+0

Ensuite, vous exécutez ce code au mauvais endroit. Vous remarquerez que le thème ne change pas instantanément, mais réactive à la place le thème au lancement précédent, puis modifie le nouveau thème après avoir rendu l'interface utilisateur au moins une fois. Peu importe, il ne devrait pas être nécessaire de vérifier le thème, sauf si vous avez mal conçu votre application. –

+0

@santhosh Vous avez raison, j'ai mis à jour ma réponse. C'est un bug. –

Questions connexes