我有一个程序有一些按钮,其中一个用于切换“主题”。有两个主题,一个是普通的 Windows 主题,另一个叫做 Style2。
这就是我尝试切换的方式
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;
}
}
我的问题是,当我使用这个程序并按 thisButton
时,会发生这种情况:
Window Opened Program 在 Windows 主题下正常运行。
SwitchButton First Click Program 将视觉效果更改为 Style2 主题。所有程序的按钮操作正常。
SwitchButton Second Click Program 恢复为 Windows 主题,但程序中的所有按钮都可以正常工作。
需要考虑的要点
- 此时程序不会抛出任何异常。
- 调试代码,好像是第二次点击后,程序没有进入
SwitchButton_Click
方法。 我尝试阅读 Click
EventHandler
但没有用。SwitchButton.Click += new RoutedEventHandler(SwitchButton_Click);
在此先感谢您的帮助。