У меня есть 2 ресурса Словари ресурсов / Orange / Core.xaml и Активы / Gray / Core.xaml.Я хочу загрузить их динамически.Словарь содержит как неявные, так и явные стили.Я попробовал стандартный код для изменения словаря ресурсов.Код: -
Uri uri = new Uri("/FMT.Client;component/Assets/Orange/Core.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
if (info != null)
{
StreamReader reader = new StreamReader(info.Stream);
ResourceDictionary currentDict = XamlReader.Load(reader.ReadToEnd()) as ResourceDictionary;
reader.Close();
if (currentDict != null)
{
Application.Current.Resources.MergedDictionaries.RemoveAt(Application.Current.Resources.MergedDictionaries.Count - 1);
Application.Current.Resources.MergedDictionaries.Add(currentDict);
}
}
Я не знаю, почему моя тема не меняется.Я действительно сыт по горло и чувствую, что бьюсь головой об стену.Сначала я поместил этот код на конкретной странице.Но это не сработало, как ожидалось.Затем я прочитал в какой-то ветке, что это еще одно ограничение SL4, и нам нужно поместить код перед загрузкой страницы.Читая это, я поместил этот код в App.xaml.cs в конструкторе сразу после строки InitializeComponent (), и все же он не работает.Что еще я могу сделать?Я провел почти 3 часа за этой глупой бесполезной проблемой.Теперь я не могу этого вынести.Строка Application.Current.Resources.MergedDictionaries.Add(currentDict);
выполняется, но никаких изменений в теме не видно.