[PowerLauncher] Fix getting theme changed event for and between HighContrast setting

This commit is contained in:
punker76
2020-10-31 11:58:31 +01:00
parent f89b98e7c7
commit fa1448163a
10 changed files with 198 additions and 15 deletions

View File

@@ -63,10 +63,9 @@ namespace Wox.Plugin
ControlzEx.Theming.ThemeManager.Current.ThemeChanged += Current_ThemeChanged;
// Currently we don't need to sync all, because the accent is not used
// If we want to sync all and use runtime generated themes,
// then it's necessary to have a "GeneratorParameters.json" and "Theme.Template.xaml".
ControlzEx.Theming.ThemeManager.Current.ThemeSyncMode = ControlzEx.Theming.ThemeSyncMode.SyncWithAppMode;
// Currently there is an issue in ControlzEx, so we must use SyncAll to sync also HighContrast themes.
// We can change this after using next release.
ControlzEx.Theming.ThemeManager.Current.ThemeSyncMode = ControlzEx.Theming.ThemeSyncMode.SyncAll;
ControlzEx.Theming.ThemeManager.Current.SyncTheme();
}
@@ -123,22 +122,22 @@ namespace Wox.Plugin
else if (theme == Theme.HighContrastOne)
{
currentTheme = Theme.HighContrastOne;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme, true);
}
else if (theme == Theme.HighContrastTwo)
{
currentTheme = Theme.HighContrastTwo;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme, true);
}
else if (theme == Theme.HighContrastWhite)
{
currentTheme = Theme.HighContrastWhite;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme, true);
}
else if (theme == Theme.HighContrastBlack)
{
currentTheme = Theme.HighContrastBlack;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme, true);
}
else if (theme == Theme.Light)
{
@@ -161,7 +160,15 @@ namespace Wox.Plugin
private void Current_ThemeChanged(object sender, ControlzEx.Theming.ThemeChangedEventArgs e)
{
ResetTheme();
ControlzEx.Theming.ThemeManager.Current.ThemeChanged -= Current_ThemeChanged;
try
{
ResetTheme();
}
finally
{
ControlzEx.Theming.ThemeManager.Current.ThemeChanged += Current_ThemeChanged;
}
}
protected virtual void Dispose(bool disposing)