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
+
+
+
+
+
+
+