У меня есть программа с несколькими кнопками, одна из которых используется для переключения «Темы». Есть две темы: одна - обычная тема Windows, а другая - Style2.WPF: Стили окна переключения
Это, как я попытался переключающий
private bool UsingWindowsStyle = true;
private ResourceDictionary Style2= new ResourceDictionary() { Source = new Uri("/...;component/Resources/DefaultStyles.xaml", UriKind.RelativeOrAbsolute) };
private void SwitchButton_Click(object sender, RoutedEventArgs e)
{
if (UsingWindowsStyle)
{
Resources.MergedDictionaries.Add(Style2);
UsingWindowsStyle = false;
}
else
{
Resources.MergedDictionaries.Remove(Style2);
UsingWindowsStyle = true;
}
}
Моя проблема, когда я использую эту программу, и нажмите на эту Button
, это то, что происходит:
Окно Открытый Программа работает нормально с Тема Windows.
SwitchButton First Click Программа меняет визуальные эффекты на тему Style2. Все кнопки программы работают нормально.
SwitchButton Second Click Программа возвращается к теме Windows, но все кнопки в программе захватывают работу.
Очки для рассмотрения
- Программа не выбрасывает никаких исключений в этом пункте.
- Отладка кода, кажется, что после второго нажатия программа не вводит метод
SwitchButton_Click
. Я пробовал читать
EventHandler
, но без использования.SwitchButton.Click += new RoutedEventHandler(SwitchButton_Click);
Заранее спасибо за вашу помощь.
Хотелось бы, чтобы я мог легко что-то сделать :). Проблема в том, что Style2 не является моим собственным кодом, я просто предоставляю некоторые DLL-файлы, которые я могу использовать, но мне не разрешено просматривать или использовать код внутри. И использование словарей - единственный способ узнать эту тему из ее DLL. – Fa7mY