Я хочу реализовать тему типа ASP.Net в WPF. Пользователь имеет выбор различных предустановленных тем и может переключиться на другую тему.
Чтобы реализовать это, я попытался создать разные словари ресурсов для каждой темы и сохранить требуемый стиль с помощью ключа. Набор ключей одинаков во всех темах, но его определение в каждой разное.
Я использую приведенный ниже код для переключения темы при нажатии:
var theme = Application.LoadComponent(uri) as ResourceDictionary;
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(theme);
На всех страницах / usercontrol / windows я установил StaticResource и применил соответствующий ключ. Когда я переключаюсь на другую тему, она применяется только после следующего события в пользовательском интерфейсе.
Если я устанавливаю для изменения StaticResource значение DynamicResource, оно применяется немедленно.
Поделитесь, пожалуйста, своей идеей добиться этого с помощью StaticResource?