J'ai Windows Phone App et je veux avoir une ressource thématique différente selon que l'utilisateur a un thème sombre ou clair et quelle couleur d'accent ils ont choisi.Maux de tête avec la configuration des ressources thématiques de C# (Windows Phone)
Dans mon code d'initialisation de l'application, je détecte le thème des utilisateurs et la couleur de l'accent, puis charge le dictionnaire de ressources approprié, Dark, Light, etc J'ajoute le dictionnaire de ressources à la collection App.Current.Resources.MergedDictionaries
.
Le problème vient quand je veux référencer une valeur dans le (dynamiquement chargé) de mon App.Xaml. Dans l'exemple ci-dessous, la clé est "DefaultBackgroundImageOpacity". Pour une raison quelconque, les valeurs dans ResourceDictionary que je charge dans la collection MergedDictionaries ne sont jamais trouvées lorsque l'analyse App.Xaml se produit. J'ai joué avec le chargement des ressources avant d'appeler InitializeComponent() et après. Ni l'un ni l'autre ne semblent résoudre le problème.
Des idées?
// Simplified version of adding some xaml...
// Note I'm loading the key "DefaultBackgroundImageOpacity"
this.Resources.MergedDictionaries.Clear();
var myTestXaml = "<ResourceDictionary xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:System='clr-namespace:System;assembly=mscorlib'> <System:Double x:Key='DefaultBackgroundImageOpacity'>0.2</System:Double></ResourceDictionary>";
this.Resources.MergedDictionaries.Add((ResourceDictionary)XamlReader.Load(myTestXaml));
// This always fails saying that the key "DefaultBackgroundImageOpacity"
// can not be foudnd - even though it was loaded just above
InitializeComponent();
// Phone-specific initialization
InitializePhoneApplication();
Il est marqué WP7 * et * SL4? – Gabe