我有一个程序有一些按钮,其中一个用于切换“主题”。有两个主题,一个是普通的 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);
在此先感谢您的帮助。
