mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-07 19:57:07 +02:00
black icons with light windows theme (#9091)
This commit is contained in:
committed by
GitHub
parent
8aad873a26
commit
990c27718a
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user