black icons with light windows theme (#9091)

This commit is contained in:
Davide Giacometti
2021-01-15 12:19:52 +01:00
committed by GitHub
parent 8aad873a26
commit 990c27718a
2 changed files with 23 additions and 23 deletions

View File

@@ -20,7 +20,8 @@ namespace Microsoft.PowerToys.Common.UI
private const string HighContrastBlackTheme = "HighContrast.Accent4"; private const string HighContrastBlackTheme = "HighContrast.Accent4";
private const string HighContrastWhiteTheme = "HighContrast.Accent5"; private const string HighContrastWhiteTheme = "HighContrast.Accent5";
private Theme currentTheme; private Theme _currentTheme;
private Theme _settingsTheme;
private bool _disposed; private bool _disposed;
public event ThemeChangedHandler ThemeChanged; public event ThemeChangedHandler ThemeChanged;
@@ -77,7 +78,7 @@ namespace Microsoft.PowerToys.Common.UI
public Theme GetCurrentTheme() public Theme GetCurrentTheme()
{ {
return currentTheme; return _currentTheme;
} }
private static Theme GetHighContrastBaseType() private static Theme GetHighContrastBaseType()
@@ -103,64 +104,64 @@ namespace Microsoft.PowerToys.Common.UI
private void ResetTheme() private void ResetTheme()
{ {
ChangeTheme(currentTheme, false); ChangeTheme(_settingsTheme == Theme.System ? Theme.System : _currentTheme);
} }
public void ChangeTheme(Theme theme, bool forceSystem) public void ChangeTheme(Theme theme, bool fromSettings = false)
{ {
Theme oldTheme = currentTheme; if (fromSettings)
{
_settingsTheme = theme;
}
Theme oldTheme = _currentTheme;
if (theme == Theme.System) if (theme == Theme.System)
{ {
currentTheme = Theme.System; _currentTheme = Theme.System;
if (ControlzEx.Theming.WindowsThemeHelper.IsHighContrastEnabled()) if (ControlzEx.Theming.WindowsThemeHelper.IsHighContrastEnabled())
{ {
Theme highContrastBaseType = GetHighContrastBaseType(); Theme highContrastBaseType = GetHighContrastBaseType();
ChangeTheme(highContrastBaseType, true); ChangeTheme(highContrastBaseType, false);
} }
else else
{ {
string baseColor = ControlzEx.Theming.WindowsThemeHelper.GetWindowsBaseColor(); string baseColor = ControlzEx.Theming.WindowsThemeHelper.GetWindowsBaseColor();
ChangeTheme((Theme)Enum.Parse(typeof(Theme), baseColor), true); ChangeTheme((Theme)Enum.Parse(typeof(Theme), baseColor));
} }
} }
else if (theme == Theme.HighContrastOne) else if (theme == Theme.HighContrastOne)
{ {
currentTheme = Theme.HighContrastOne; _currentTheme = Theme.HighContrastOne;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme, true); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme, true);
} }
else if (theme == Theme.HighContrastTwo) else if (theme == Theme.HighContrastTwo)
{ {
currentTheme = Theme.HighContrastTwo; _currentTheme = Theme.HighContrastTwo;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme, true); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme, true);
} }
else if (theme == Theme.HighContrastWhite) else if (theme == Theme.HighContrastWhite)
{ {
currentTheme = Theme.HighContrastWhite; _currentTheme = Theme.HighContrastWhite;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme, true); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme, true);
} }
else if (theme == Theme.HighContrastBlack) else if (theme == Theme.HighContrastBlack)
{ {
currentTheme = Theme.HighContrastBlack; _currentTheme = Theme.HighContrastBlack;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme, true); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme, true);
} }
else if (theme == Theme.Light) else if (theme == Theme.Light)
{ {
currentTheme = Theme.Light; _currentTheme = Theme.Light;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, LightTheme); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, LightTheme);
} }
else if (theme == Theme.Dark) else if (theme == Theme.Dark)
{ {
currentTheme = Theme.Dark; _currentTheme = Theme.Dark;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, DarkTheme); ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, DarkTheme);
} }
ThemeChanged?.Invoke(oldTheme, currentTheme); ThemeChanged?.Invoke(oldTheme, _currentTheme);
if (forceSystem)
{
currentTheme = Theme.System;
}
} }
private void Current_ThemeChanged(object sender, ControlzEx.Theming.ThemeChangedEventArgs e) private void Current_ThemeChanged(object sender, ControlzEx.Theming.ThemeChangedEventArgs e)

View File

@@ -7,7 +7,6 @@ using System.IO;
using System.IO.Abstractions; using System.IO.Abstractions;
using System.Threading; using System.Threading;
using System.Windows.Input; using System.Windows.Input;
using ManagedCommon;
using Microsoft.PowerToys.Common.UI; using Microsoft.PowerToys.Common.UI;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library;
using PowerLauncher.Helper; using PowerLauncher.Helper;
@@ -45,7 +44,7 @@ namespace PowerLauncher
OverloadSettings(); OverloadSettings();
// Apply theme at startup // Apply theme at startup
_themeManager.ChangeTheme(_settings.Theme, _settings.Theme == Theme.System); _themeManager.ChangeTheme(_settings.Theme, true);
} }
public void CreateSettingsIfNotExists() public void CreateSettingsIfNotExists()
@@ -112,7 +111,7 @@ namespace PowerLauncher
if (_settings.Theme != overloadSettings.Properties.Theme) if (_settings.Theme != overloadSettings.Properties.Theme)
{ {
_settings.Theme = overloadSettings.Properties.Theme; _settings.Theme = overloadSettings.Properties.Theme;
_themeManager.ChangeTheme(_settings.Theme, _settings.Theme == Theme.System); _themeManager.ChangeTheme(_settings.Theme, true);
} }
retry = false; retry = false;