Я пытаюсь создать wpf приложение, которое позволяет пользователю изменять тему во времени выполнения. Что я сделал, до сих пор, создают resourcedictionary со всеми цветами для приложения, определенного в нем, и затем я связываю с этим словарем в xaml.
Ниже код, который я имею для переключения словаря ресурса:
if (System.IO.File.Exists(fileName))
{
using (FileStream fs = new FileStream(fileName, FileMode.Open))
{
ResourceDictionary dic = (ResourceDictionary)XamlReader.Load(fs);
Resources.MergedDictionaries.Clear();
Resources.MergedDictionaries.Add(dic);
}
}
Этот код хорошо работает, и я знаю, что он переключает словарь ресурса, но он не обновляет элементы, уже отображенные на экране. Мой вопрос: как я могу обновить или снова переплести экран для принятия во внимание нового словаря ресурса?
спасибо
см
В моем случае нужно было просто изменить:
Resources.MergedDictionaries.Clear();
Resources.MergedDictionaries.Add(dic);
на:
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(dic);