mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-07 11:46:30 +02:00
Improve setting window performance (theme).
This commit is contained in:
@@ -41,7 +41,6 @@ namespace Wox.Core.i18n
|
|||||||
{
|
{
|
||||||
Language language = GetLanguageByLanguageCode(languageCode);
|
Language language = GetLanguageByLanguageCode(languageCode);
|
||||||
ChangeLanguage(language);
|
ChangeLanguage(language);
|
||||||
UpdateAllPluginMetadataTranslations();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Language GetLanguageByLanguageCode(string languageCode)
|
private Language GetLanguageByLanguageCode(string languageCode)
|
||||||
@@ -72,6 +71,7 @@ namespace Wox.Core.i18n
|
|||||||
UserSettingStorage.Instance.Language = language.LanguageCode;
|
UserSettingStorage.Instance.Language = language.LanguageCode;
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
ResourceMerger.ApplyResources();
|
ResourceMerger.ApplyResources();
|
||||||
|
UpdateAllPluginMetadataTranslations();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceDictionary GetResourceDictionary()
|
public ResourceDictionary GetResourceDictionary()
|
||||||
|
|||||||
@@ -188,23 +188,6 @@
|
|||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal" Margin="2">
|
|
||||||
<TextBlock Text="{DynamicResource windowMode}" />
|
|
||||||
<ComboBox Name="CbOpacityMode" Margin="14 0 0 0" SelectionChanged="CbOpacityMode_OnSelectionChanged" Width="160">
|
|
||||||
<userSettings:OpacityMode>Normal</userSettings:OpacityMode>
|
|
||||||
<userSettings:OpacityMode>LayeredWindow</userSettings:OpacityMode>
|
|
||||||
<userSettings:OpacityMode>DWM</userSettings:OpacityMode>
|
|
||||||
<ComboBox.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<TextBlock Text="{Binding Converter={converters:OpacityModeConverter}}" />
|
|
||||||
</DataTemplate>
|
|
||||||
</ComboBox.ItemTemplate>
|
|
||||||
</ComboBox>
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="5 0 0 0" x:Name="spOpacity">
|
|
||||||
<TextBlock Text="{DynamicResource opacity}" HorizontalAlignment="Center" />
|
|
||||||
<Slider x:Name="slOpacity" Maximum="1" Minimum="0" SmallChange="1" LargeChange="0.1" TickPlacement="BottomRight" TickFrequency="0.1" ValueChanged="slOpacity_ValueChanged" Width="100"/>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using System.Diagnostics;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
@@ -23,6 +24,7 @@ using Wox.Core.i18n;
|
|||||||
using Wox.Core.Theme;
|
using Wox.Core.Theme;
|
||||||
using Wox.Core.Updater;
|
using Wox.Core.Updater;
|
||||||
using Wox.Core.UserSettings;
|
using Wox.Core.UserSettings;
|
||||||
|
using Wox.Infrastructure;
|
||||||
using CheckBox = System.Windows.Controls.CheckBox;
|
using CheckBox = System.Windows.Controls.CheckBox;
|
||||||
using Control = System.Windows.Controls.Control;
|
using Control = System.Windows.Controls.Control;
|
||||||
using Cursors = System.Windows.Input.Cursors;
|
using Cursors = System.Windows.Input.Cursors;
|
||||||
@@ -262,23 +264,13 @@ namespace Wox
|
|||||||
Process.Start("http://www.getwox.com/theme");
|
Process.Start("http://www.getwox.com/theme");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void CbOpacityMode_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
UserSettingStorage.Instance.OpacityMode = (OpacityMode)CbOpacityMode.SelectedItem;
|
|
||||||
UserSettingStorage.Instance.Save();
|
|
||||||
|
|
||||||
spOpacity.Visibility = UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow ? Visibility.Visible : Visibility.Collapsed;
|
|
||||||
|
|
||||||
if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
|
|
||||||
PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
|
|
||||||
else
|
|
||||||
PreviewMainPanel.Opacity = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void OnThemeTabSelected()
|
private void OnThemeTabSelected()
|
||||||
{
|
{
|
||||||
|
using (new Timeit("theme load"))
|
||||||
|
{
|
||||||
|
var s = Fonts.SystemFontFamilies;
|
||||||
|
}
|
||||||
|
|
||||||
if (themeTabLoaded) return;
|
if (themeTabLoaded) return;
|
||||||
|
|
||||||
themeTabLoaded = true;
|
themeTabLoaded = true;
|
||||||
@@ -304,6 +296,7 @@ namespace Wox
|
|||||||
UserSettingStorage.Instance.ResultItemFontStretch
|
UserSettingStorage.Instance.ResultItemFontStretch
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
resultPanelPreview.AddResults(new List<Result>()
|
resultPanelPreview.AddResults(new List<Result>()
|
||||||
{
|
{
|
||||||
new Result()
|
new Result()
|
||||||
@@ -363,8 +356,6 @@ namespace Wox
|
|||||||
}
|
}
|
||||||
|
|
||||||
themeComboBox.SelectedItem = UserSettingStorage.Instance.Theme;
|
themeComboBox.SelectedItem = UserSettingStorage.Instance.Theme;
|
||||||
slOpacity.Value = UserSettingStorage.Instance.Opacity;
|
|
||||||
CbOpacityMode.SelectedItem = UserSettingStorage.Instance.OpacityMode;
|
|
||||||
|
|
||||||
var wallpaper = WallpaperPathRetrieval.GetWallpaperPath();
|
var wallpaper = WallpaperPathRetrieval.GetWallpaperPath();
|
||||||
if (wallpaper != null && File.Exists(wallpaper))
|
if (wallpaper != null && File.Exists(wallpaper))
|
||||||
@@ -379,8 +370,6 @@ namespace Wox
|
|||||||
PreviewPanel.Background = new SolidColorBrush(wallpaperColor);
|
PreviewPanel.Background = new SolidColorBrush(wallpaperColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
//PreviewPanel
|
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TabTheme_OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
private void TabTheme_OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||||
@@ -396,8 +385,8 @@ namespace Wox
|
|||||||
private void ThemeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void ThemeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
string themeName = themeComboBox.SelectedItem.ToString();
|
string themeName = themeComboBox.SelectedItem.ToString();
|
||||||
ThemeManager.Theme.ChangeTheme(themeName);
|
|
||||||
UserSettingStorage.Instance.Theme = themeName;
|
UserSettingStorage.Instance.Theme = themeName;
|
||||||
|
DelayChangeTheme();
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,9 +396,16 @@ namespace Wox
|
|||||||
string queryBoxFontName = cbQueryBoxFont.SelectedItem.ToString();
|
string queryBoxFontName = cbQueryBoxFont.SelectedItem.ToString();
|
||||||
UserSettingStorage.Instance.QueryBoxFont = queryBoxFontName;
|
UserSettingStorage.Instance.QueryBoxFont = queryBoxFontName;
|
||||||
this.cbQueryBoxFontFaces.SelectedItem = ((FontFamily)cbQueryBoxFont.SelectedItem).ChooseRegularFamilyTypeface();
|
this.cbQueryBoxFontFaces.SelectedItem = ((FontFamily)cbQueryBoxFont.SelectedItem).ChooseRegularFamilyTypeface();
|
||||||
|
DelayChangeTheme();
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
}
|
||||||
|
|
||||||
|
private void DelayChangeTheme()
|
||||||
|
{
|
||||||
|
Dispatcher.DelayInvoke("delayChangeTheme", o =>
|
||||||
|
{
|
||||||
|
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
||||||
|
}, TimeSpan.FromMilliseconds(100));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CbQueryBoxFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void CbQueryBoxFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
@@ -429,7 +425,7 @@ namespace Wox
|
|||||||
UserSettingStorage.Instance.QueryBoxFontWeight = typeface.Weight.ToString();
|
UserSettingStorage.Instance.QueryBoxFontWeight = typeface.Weight.ToString();
|
||||||
UserSettingStorage.Instance.QueryBoxFontStyle = typeface.Style.ToString();
|
UserSettingStorage.Instance.QueryBoxFontStyle = typeface.Style.ToString();
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
DelayChangeTheme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,7 +437,7 @@ namespace Wox
|
|||||||
this.cbResultItemFontFaces.SelectedItem = ((FontFamily)cbResultItemFont.SelectedItem).ChooseRegularFamilyTypeface();
|
this.cbResultItemFontFaces.SelectedItem = ((FontFamily)cbResultItemFont.SelectedItem).ChooseRegularFamilyTypeface();
|
||||||
|
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
DelayChangeTheme();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CbResultItemFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void CbResultItemFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
@@ -459,30 +455,14 @@ namespace Wox
|
|||||||
UserSettingStorage.Instance.ResultItemFontWeight = typeface.Weight.ToString();
|
UserSettingStorage.Instance.ResultItemFontWeight = typeface.Weight.ToString();
|
||||||
UserSettingStorage.Instance.ResultItemFontStyle = typeface.Style.ToString();
|
UserSettingStorage.Instance.ResultItemFontStyle = typeface.Style.ToString();
|
||||||
UserSettingStorage.Instance.Save();
|
UserSettingStorage.Instance.Save();
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
DelayChangeTheme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void slOpacity_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
|
||||||
{
|
|
||||||
UserSettingStorage.Instance.Opacity = slOpacity.Value;
|
|
||||||
|
|
||||||
if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
|
|
||||||
PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
|
|
||||||
else
|
|
||||||
PreviewMainPanel.Opacity = 1;
|
|
||||||
|
|
||||||
ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
|
|
||||||
Dispatcher.DelayInvoke("delaySaveUserSetting", o =>
|
|
||||||
{
|
|
||||||
UserSettingStorage.Instance.Save();
|
|
||||||
}, TimeSpan.FromMilliseconds(1000));
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Plugin
|
#region Plugin
|
||||||
|
|
||||||
|
|
||||||
private void lbPlugins_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void lbPlugins_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
ISettingProvider provider = null;
|
ISettingProvider provider = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user