diff --git a/src/modules/launcher/PowerLauncher/Themes/Dark.xaml b/src/modules/launcher/PowerLauncher/Themes/Dark.xaml index 9aac73fcae..797fd0536f 100644 --- a/src/modules/launcher/PowerLauncher/Themes/Dark.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/Dark.xaml @@ -12,6 +12,7 @@ Dark Accent1 Black + False #FF818181 @@ -35,7 +36,7 @@ #FF1b1b1b - #FFcdcdcd + #FFcdcdcd #FF171717 diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml index f32bc2aedd..884915cf18 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml @@ -12,6 +12,7 @@ HighContrast Accent2 White + True #ffff00 @@ -35,7 +36,7 @@ #FF000000 - #FFFFFFFF + #FFFFFFFF #FFFFFFFF diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml index 3c4e2d6332..c9c8e63841 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml @@ -12,6 +12,7 @@ HighContrast Accent3 White + True #ffff00 @@ -35,7 +36,7 @@ #FF000000 - #FFFFFFFF + #FFFFFFFF #FFFFFFFF diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml index e0be43816b..c43db5ee5b 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml @@ -12,6 +12,7 @@ HighContrast Accent4 White + True #66FFFFFF @@ -35,7 +36,7 @@ #FF000000 - #FFFFFFFF + #FFFFFFFF #FFFFFFFF diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml index 957ccc6aaa..aad036fddd 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml @@ -12,6 +12,7 @@ HighContrast Accent5 White + True #66000000 @@ -35,7 +36,7 @@ #FFf0f0f0 - #FF000000 + #FF000000 #FF000000 diff --git a/src/modules/launcher/PowerLauncher/Themes/Light.xaml b/src/modules/launcher/PowerLauncher/Themes/Light.xaml index ef546f61dc..fb4bc5cdbf 100644 --- a/src/modules/launcher/PowerLauncher/Themes/Light.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/Light.xaml @@ -12,6 +12,7 @@ Light Accent1 White + False #66000000 @@ -35,7 +36,7 @@ #FFf0f0f0 - #FF1d1d1d + #FF1d1d1d #FFf3f3f3 diff --git a/src/modules/launcher/Wox.Plugin/LibraryThemes/GeneratorParameters.json b/src/modules/launcher/Wox.Plugin/LibraryThemes/GeneratorParameters.json new file mode 100644 index 0000000000..3cc5ec4f3a --- /dev/null +++ b/src/modules/launcher/Wox.Plugin/LibraryThemes/GeneratorParameters.json @@ -0,0 +1,111 @@ +{ + "DefaultValues": { + "Theme.IsHighContrast": "false" + }, + "BaseColorSchemes": [ + { + "Name": "Dark", + "Values": { + "PrimaryAccentColor": "Black", + "SystemBaseMediumLowColor": "#FF818181", + "SystemChromeLow": "#FF171717", + "TextControlPlaceholderForeground": "#FF818181", + "TextBox.Static.Border": "Transparent", + "TextBox.MouseOver.Border": "Transparent", + "TextBox.Focus.Border": "Transparent", + "ButtonBackgroundPointerOver": "#30FFFFFF", + "ButtonBorderPointerOver": "#61FFFFFF", + "ButtonBackgroundPressed": "#30FFFFFF", + "ButtonBorderPressed": "#61FFFFFF", + "ListViewItemBackgroundPointerOver": "#FF363636", + "ControlTextBrushKey": "White", + "SecondaryTextForeground": "#FFa1a1a1", + "InactiveSelectionHighlightBrushKey": "White", + "DialogBorderBrush": "#FF373737", + "ScrollBarThumbBackground": "#FF7a7a7a", + "ScrollBarThumbPointerOver": "#FF767676", + "ScrollBarThumbPointerPressed": "#FFa4a4a4", + "ScrollBarBackgroundPointerOver": "#FF1b1b1b", + "ScrollBarLineButtonForeground": "#FFcdcdcd", + "ScrollBarLineButtonForegroundPointerOver": "#FFcdcdcd", + "ScrollBarLineButtonForegroundPointerPressed": "#FF171717", + "ScrollBarLineButtonBackground": "Transparent", + "ScrollBarLineButtonBackgroundPointerOver": "#FF313131", + "ScrollBarLineButtonBackgroundPointerPressed": "#FFa4a4a4", + "ToolTipBorderBrushKey": "#5B000000", + "ToolTipForegroundBrushKey": "#FFFFFFFF", + "ToolTipBackgroundBrushKey": "#FF2B2B2B" + } + }, + { + "Name": "Light", + "Values": { + "PrimaryAccentColor": "White", + "SystemBaseMediumLowColor": "#66000000", + "SystemChromeLow": "#FFF2F2F2", + "TextControlPlaceholderForeground": "#FF5b5b5b", + "TextBox.Static.Border": "Transparent", + "TextBox.MouseOver.Border": "Transparent", + "TextBox.Focus.Border": "Transparent", + "ButtonBackgroundPointerOver": "#2E000000", + "ButtonBorderPointerOver": "#61000000", + "ButtonBackgroundPressed": "#30000000", + "ButtonBorderPressed": "#61000000", + "ListViewItemBackgroundPointerOver": "#FFd2d2d2", + "ControlTextBrushKey": "Black", + "SecondaryTextForeground": "#FF434343", + "InactiveSelectionHighlightBrushKey": "Black", + "DialogBorderBrush": "#FFf7f7f7", + "ScrollBarThumbBackground": "#FF7a7a7a", + "ScrollBarThumbPointerOver": "#FFa0a0a0", + "ScrollBarThumbPointerPressed": "#FF747474", + "ScrollBarBackgroundPointerOver": "#FFf0f0f0", + "ScrollBarLineButtonForeground": "#FF1d1d1d", + "ScrollBarLineButtonForegroundPointerOver": "#FF1d1d1d", + "ScrollBarLineButtonForegroundPointerPressed": "#FFf3f3f3", + "ScrollBarLineButtonBackground": "Transparent", + "ScrollBarLineButtonBackgroundPointerOver": "#FFd2d2d2", + "ScrollBarLineButtonBackgroundPointerPressed": "#FF5d5d5d", + "ToolTipBorderBrushKey": "#FFD0D0D0", + "ToolTipForegroundBrushKey": "#FF000000", + "ToolTipBackgroundBrushKey": "#FFFBFBFB" + } + }, + { + "Name": "HighContrast", + "Values": { + "Theme.IsHighContrast": "true", + "PrimaryAccentColor": "White", + "SystemBaseMediumLowColor": "#ffff00", + "SystemChromeLow": "Black", + "TextControlPlaceholderForeground": "#FF008000", + "TextBox.Static.Border": "Transparent", + "TextBox.MouseOver.Border": "Transparent", + "TextBox.Focus.Border": "Transparent", + "ButtonBackgroundPointerOver": "Black", + "ButtonBorderPointerOver": "White", + "ButtonBackgroundPressed": "White", + "ButtonBorderPressed": "White", + "ListViewItemBackgroundPointerOver": "#FF003300", + "ControlTextBrushKey": "#FFffff00", + "SecondaryTextForeground": "#FF008000", + "InactiveSelectionHighlightBrushKey": "#FFFFFFFF", + "DialogBorderBrush": "#FF373737", + "ScrollBarThumbBackground": "White", + "ScrollBarThumbPointerOver": "#FF008000", + "ScrollBarThumbPointerPressed": "#FF008000", + "ScrollBarBackgroundPointerOver": "#FF000000", + "ScrollBarLineButtonForeground": "#FFFFFFFF", + "ScrollBarLineButtonForegroundPointerOver": "#FFFFFFFF", + "ScrollBarLineButtonForegroundPointerPressed": "#FFFFFFFF", + "ScrollBarLineButtonBackground": "Black", + "ScrollBarLineButtonBackgroundPointerOver": "#FF000000", + "ScrollBarLineButtonBackgroundPointerPressed": "#FF000000", + "ToolTipBorderBrushKey": "#5B000000", + "ToolTipForegroundBrushKey": "#FFFFFFFF", + "ToolTipBackgroundBrushKey": "#FF2B2B2B" + } + } + ], + "ColorSchemes": [] +} \ No newline at end of file diff --git a/src/modules/launcher/Wox.Plugin/LibraryThemes/Theme.Template.xaml b/src/modules/launcher/Wox.Plugin/LibraryThemes/Theme.Template.xaml new file mode 100644 index 0000000000..e0600b3378 --- /dev/null +++ b/src/modules/launcher/Wox.Plugin/LibraryThemes/Theme.Template.xaml @@ -0,0 +1,50 @@ + + + + {{ThemeName}} + PowerToysRun + {{ThemeDisplayName}} + {{BaseColorScheme}} + {{ColorScheme}} + {{PrimaryAccentColor}} + {{IsHighContrast}} + + {{SystemBaseMediumLowColor}} + + + + + + + + + + + + + + + + + {{ScrollBarThumbPointerOver}} + {{ScrollBarThumbPointerPressed}} + + {{ScrollBarBackgroundPointerOver}} + + + {{ScrollBarLineButtonForegroundPointerOver}} + {{ScrollBarLineButtonForegroundPointerPressed}} + + + {{ScrollBarLineButtonBackgroundPointerOver}} + {{ScrollBarLineButtonBackgroundPointerPressed}} + + + + + \ No newline at end of file diff --git a/src/modules/launcher/Wox.Plugin/ThemeManager.cs b/src/modules/launcher/Wox.Plugin/ThemeManager.cs index 3118a17c3f..a8c19bba7c 100644 --- a/src/modules/launcher/Wox.Plugin/ThemeManager.cs +++ b/src/modules/launcher/Wox.Plugin/ThemeManager.cs @@ -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) diff --git a/src/modules/launcher/Wox.Plugin/Wox.Plugin.csproj b/src/modules/launcher/Wox.Plugin/Wox.Plugin.csproj index 8aa96202ea..b92c794657 100644 --- a/src/modules/launcher/Wox.Plugin/Wox.Plugin.csproj +++ b/src/modules/launcher/Wox.Plugin/Wox.Plugin.csproj @@ -49,6 +49,15 @@ true + + $(DefaultItemExcludes);**/*.Template.xaml + + + + + + +