diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt
index e5b890aa3d..9e605257ca 100644
--- a/.github/actions/spell-check/expect.txt
+++ b/.github/actions/spell-check/expect.txt
@@ -15,6 +15,7 @@ accessibilityinsights
Acl
aclapi
AColumn
+Accessible
acos
acrt
Actioncenter
@@ -270,6 +271,7 @@ codereview
Codespaces
COINIT
colorconv
+colorformat
colorhistory
colorhistorylimit
COLORKEY
diff --git a/installer/PowerToysSetup/Product.wxs b/installer/PowerToysSetup/Product.wxs
index ab21cd3ff1..1810508c85 100644
--- a/installer/PowerToysSetup/Product.wxs
+++ b/installer/PowerToysSetup/Product.wxs
@@ -794,7 +794,7 @@
-
+
@@ -848,7 +848,7 @@
-
+
@@ -869,7 +869,7 @@
-
+
diff --git a/src/runner/Resources.resx b/src/runner/Resources.resx
index f961182c08..5303114f4c 100644
--- a/src/runner/Resources.resx
+++ b/src/runner/Resources.resx
@@ -110,14 +110,14 @@
Settings
- Open documentation
+ Documentation
Exit
Exit as a verb, as in Exit the application
- Report Bug
+ Report bug
Bug report .zip file has been created on your Desktop.
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/GeneralViewModel.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/GeneralViewModel.cs
index 63166703db..1d95c375d7 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/GeneralViewModel.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/GeneralViewModel.cs
@@ -80,14 +80,14 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
// normalization for switch statements
switch (GeneralSettingsConfig.Theme.ToUpperInvariant())
{
- case "LIGHT":
- _isLightThemeRadioButtonChecked = true;
- break;
case "DARK":
- _isDarkThemeRadioButtonChecked = true;
+ _themeIndex = 0;
+ break;
+ case "LIGHT":
+ _themeIndex = 1;
break;
case "SYSTEM":
- _isSystemThemeRadioButtonChecked = true;
+ _themeIndex = 2;
break;
}
@@ -116,9 +116,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
private bool _isElevated;
private bool _runElevated;
private bool _isAdmin;
- private bool _isDarkThemeRadioButtonChecked;
- private bool _isLightThemeRadioButtonChecked;
- private bool _isSystemThemeRadioButtonChecked;
+ private int _themeIndex;
+
private bool _autoDownloadUpdates;
private UpdatingSettings.UpdatingState _updatingState = UpdatingSettings.UpdatingState.UpToDate;
@@ -255,81 +254,33 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
}
}
- [SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "This may throw if the XAML page is not initialized in tests (https://github.com/microsoft/PowerToys/pull/2676)")]
- public bool IsDarkThemeRadioButtonChecked
+ public int ThemeIndex
{
get
{
- return _isDarkThemeRadioButtonChecked;
+ return _themeIndex;
}
set
{
- if (value == true)
+ if (_themeIndex != value)
{
- GeneralSettingsConfig.Theme = "dark";
- _isDarkThemeRadioButtonChecked = value;
- try
- {
- UpdateUIThemeCallBack(GeneralSettingsConfig.Theme);
- }
- catch (Exception e)
- {
- Logger.LogError("Exception encountered when changing Settings theme", e);
- }
-
- NotifyPropertyChanged();
- }
- }
- }
-
- [SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "This may throw if the XAML page is not initialized in tests (https://github.com/microsoft/PowerToys/pull/2676)")]
- public bool IsLightThemeRadioButtonChecked
- {
- get
- {
- return _isLightThemeRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- GeneralSettingsConfig.Theme = "light";
- _isLightThemeRadioButtonChecked = value;
- try
- {
- UpdateUIThemeCallBack(GeneralSettingsConfig.Theme);
- }
- catch (Exception e)
- {
- Logger.LogError("Exception encountered when changing Settings theme", e);
- }
-
- NotifyPropertyChanged();
- }
- }
- }
-
- [SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "This may throw if the XAML page is not initialized in tests (https://github.com/microsoft/PowerToys/pull/2676)")]
- public bool IsSystemThemeRadioButtonChecked
- {
- get
- {
- return _isSystemThemeRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- GeneralSettingsConfig.Theme = "system";
- _isSystemThemeRadioButtonChecked = value;
+ switch (value)
+ {
+ case 0: GeneralSettingsConfig.Theme = "dark"; break;
+ case 1: GeneralSettingsConfig.Theme = "light"; break;
+ case 2: GeneralSettingsConfig.Theme = "system"; break;
+ }
+
+ _themeIndex = value;
+
try
{
UpdateUIThemeCallBack(GeneralSettingsConfig.Theme);
}
+#pragma warning disable CA1031 // Do not catch general exception types
catch (Exception e)
+#pragma warning restore CA1031 // Do not catch general exception types
{
Logger.LogError("Exception encountered when changing Settings theme", e);
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherPluginViewModel.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherPluginViewModel.cs
index cde36c964d..07216c1510 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherPluginViewModel.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherPluginViewModel.cs
@@ -139,21 +139,6 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
}
}
- private bool _showAdditionalInfoPanel;
-
- public bool ShowAdditionalInfoPanel
- {
- get => _showAdditionalInfoPanel;
- set
- {
- if (value != _showAdditionalInfoPanel)
- {
- _showAdditionalInfoPanel = value;
- NotifyPropertyChanged();
- }
- }
- }
-
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherViewModel.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherViewModel.cs
index 4497cf0316..f226efda48 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherViewModel.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/PowerLauncherViewModel.cs
@@ -19,13 +19,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
{
public class PowerLauncherViewModel : Observable
{
- private bool _isDarkThemeRadioButtonChecked;
- private bool _isLightThemeRadioButtonChecked;
- private bool _isSystemThemeRadioButtonChecked;
-
- private bool _isCursorPositionRadioButtonChecked;
- private bool _isPrimaryMonitorPositionRadioButtonChecked;
- private bool _isFocusPositionRadioButtonChecked;
+ private int _themeIndex;
+ private int _monitorPositionIndex;
private string _searchText;
@@ -75,27 +70,27 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
switch (settings.Properties.Theme)
{
- case Theme.Light:
- _isLightThemeRadioButtonChecked = true;
- break;
case Theme.Dark:
- _isDarkThemeRadioButtonChecked = true;
+ _themeIndex = 0;
+ break;
+ case Theme.Light:
+ _themeIndex = 1;
break;
case Theme.System:
- _isSystemThemeRadioButtonChecked = true;
+ _themeIndex = 2;
break;
}
switch (settings.Properties.Position)
{
case StartupPosition.Cursor:
- _isCursorPositionRadioButtonChecked = true;
+ _monitorPositionIndex = 0;
break;
case StartupPosition.PrimaryMonitor:
- _isPrimaryMonitorPositionRadioButtonChecked = true;
+ _monitorPositionIndex = 1;
break;
case StartupPosition.Focus:
- _isFocusPositionRadioButtonChecked = true;
+ _monitorPositionIndex = 2;
break;
}
@@ -199,112 +194,46 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
}
}
- public bool IsDarkThemeRadioButtonChecked
+ public int ThemeIndex
{
get
{
- return _isDarkThemeRadioButtonChecked;
+ return _themeIndex;
}
set
{
- if (value == true)
+ switch (value)
{
- settings.Properties.Theme = Theme.Dark;
- _isDarkThemeRadioButtonChecked = value;
-
- UpdateSettings();
+ case 0: settings.Properties.Theme = Theme.Dark; break;
+ case 1: settings.Properties.Theme = Theme.Light; break;
+ case 2: settings.Properties.Theme = Theme.System; break;
}
+
+ _themeIndex = value;
+ UpdateSettings();
}
}
- public bool IsLightThemeRadioButtonChecked
+ public int MonitorPositionIndex
{
get
{
- return _isLightThemeRadioButtonChecked;
+ return _monitorPositionIndex;
}
set
{
- if (value == true)
+ if (_monitorPositionIndex != value)
{
- settings.Properties.Theme = Theme.Light;
- _isDarkThemeRadioButtonChecked = value;
+ switch (value)
+ {
+ case 0: settings.Properties.Position = StartupPosition.Cursor; break;
+ case 1: settings.Properties.Position = StartupPosition.PrimaryMonitor; break;
+ case 2: settings.Properties.Position = StartupPosition.Focus; break;
+ }
- UpdateSettings();
- }
- }
- }
-
- public bool IsSystemThemeRadioButtonChecked
- {
- get
- {
- return _isSystemThemeRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- settings.Properties.Theme = Theme.System;
- _isDarkThemeRadioButtonChecked = value;
-
- UpdateSettings();
- }
- }
- }
-
- public bool IsCursorPositionRadioButtonChecked
- {
- get
- {
- return _isCursorPositionRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- settings.Properties.Position = StartupPosition.Cursor;
- _isCursorPositionRadioButtonChecked = value;
- UpdateSettings();
- }
- }
- }
-
- public bool IsPrimaryMonitorPositionRadioButtonChecked
- {
- get
- {
- return _isPrimaryMonitorPositionRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- settings.Properties.Position = StartupPosition.PrimaryMonitor;
- _isPrimaryMonitorPositionRadioButtonChecked = value;
- UpdateSettings();
- }
- }
- }
-
- public bool IsFocusPositionRadioButtonChecked
- {
- get
- {
- return _isFocusPositionRadioButtonChecked;
- }
-
- set
- {
- if (value == true)
- {
- settings.Properties.Position = StartupPosition.Focus;
- _isFocusPositionRadioButtonChecked = value;
+ _monitorPositionIndex = value;
UpdateSettings();
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/ShortcutGuideViewModel.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/ShortcutGuideViewModel.cs
index be2faed406..50720a3e33 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/ShortcutGuideViewModel.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.Library/ViewModels/ShortcutGuideViewModel.cs
@@ -56,21 +56,11 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
_opacity = Settings.Properties.OverlayOpacity.Value;
_disabledApps = Settings.Properties.DisabledApps.Value;
- string theme = Settings.Properties.Theme.Value;
-
- if (theme == "dark")
+ switch (Settings.Properties.Theme.Value)
{
- _themeIndex = 0;
- }
-
- if (theme == "light")
- {
- _themeIndex = 1;
- }
-
- if (theme == "system")
- {
- _themeIndex = 2;
+ case "dark": _themeIndex = 0; break;
+ case "light": _themeIndex = 1; break;
+ case "system": _themeIndex = 2; break;
}
}
@@ -130,29 +120,15 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
{
if (_themeIndex != value)
{
- if (value == 0)
+ switch (value)
{
- // set theme to dark.
- Settings.Properties.Theme.Value = "dark";
- _themeIndex = value;
- NotifyPropertyChanged();
+ case 0: Settings.Properties.Theme.Value = "dark"; break;
+ case 1: Settings.Properties.Theme.Value = "light"; break;
+ case 2: Settings.Properties.Theme.Value = "system"; break;
}
- if (value == 1)
- {
- // set theme to light.
- Settings.Properties.Theme.Value = "light";
- _themeIndex = value;
- NotifyPropertyChanged();
- }
-
- if (value == 2)
- {
- // set theme to system default.
- Settings.Properties.Theme.Value = "system";
- _themeIndex = value;
- NotifyPropertyChanged();
- }
+ _themeIndex = value;
+ NotifyPropertyChanged();
}
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.UnitTests/ViewModelTests/General.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.UnitTests/ViewModelTests/General.cs
index 9293f222ff..ce0a01be21 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI.UnitTests/ViewModelTests/General.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.UnitTests/ViewModelTests/General.cs
@@ -191,10 +191,10 @@ namespace ViewModelTests
sendRestartAdminIPCMessage,
sendCheckForUpdatesIPCMessage,
GeneralSettingsFileName);
- Assert.IsFalse(viewModel.IsLightThemeRadioButtonChecked);
+ Assert.AreNotEqual(1, viewModel.ThemeIndex);
// act
- viewModel.IsLightThemeRadioButtonChecked = true;
+ viewModel.ThemeIndex = 1;
}
[TestMethod]
@@ -222,10 +222,10 @@ namespace ViewModelTests
sendRestartAdminIPCMessage,
sendCheckForUpdatesIPCMessage,
GeneralSettingsFileName);
- Assert.IsFalse(viewModel.IsDarkThemeRadioButtonChecked);
+ Assert.AreNotEqual(0, viewModel.ThemeIndex);
// act
- viewModel.IsDarkThemeRadioButtonChecked = true;
+ viewModel.ThemeIndex = 0;
}
[TestMethod]
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/App.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/App.xaml
index e18786bcbb..6900c4b1e9 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/App.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/App.xaml
@@ -2,22 +2,27 @@
x:Class="Microsoft.PowerToys.Settings.UI.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:xaml="using:Microsoft.Toolkit.Win32.UI.XamlHost"
- xmlns:converters="using:Microsoft.PowerToys.Settings.UI.Converters">
+ xmlns:xaml="using:Microsoft.Toolkit.Win32.UI.XamlHost">
-
+
-
-
-
-
-
+
+
-
+
+ 6,16,16,16
+ 16,0,0,0
+ 240
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Assets/FluentIcons/FluentIconsSettings.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Assets/FluentIcons/FluentIconsSettings.png
new file mode 100644
index 0000000000..bf6a6c2d80
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Assets/FluentIcons/FluentIconsSettings.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/HotkeySettingsControl.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/HotkeySettingsControl.xaml
index 05d85f1cf3..67dfd91bda 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/HotkeySettingsControl.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/HotkeySettingsControl.xaml
@@ -6,25 +6,10 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
- AutomationProperties.Name="{x:Bind Header, Mode=OneTime}"
+
d:DesignHeight="300"
d:DesignWidth="400">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ IsReadOnly="True"/>
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml
new file mode 100644
index 0000000000..0537a76809
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml.cs
new file mode 100644
index 0000000000..8d2ab0693c
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/OOBEPageControl/OOBEPageControl.xaml.cs
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+
+namespace Microsoft.PowerToys.Settings.UI.Controls
+{
+ public sealed partial class OOBEPageControl : UserControl
+ {
+ public OOBEPageControl()
+ {
+ this.InitializeComponent();
+ }
+
+ public string ModuleTitle
+ {
+ get { return (string)GetValue(ModuleTitleProperty); }
+ set { SetValue(ModuleTitleProperty, value); }
+ }
+
+ public string ModuleDescription
+ {
+ get => (string)GetValue(ModuleDescriptionProperty);
+ set => SetValue(ModuleDescriptionProperty, value);
+ }
+
+ public string ModuleImageSource
+ {
+ get => (string)GetValue(ModuleImageSourceProperty);
+ set => SetValue(ModuleImageSourceProperty, value);
+ }
+
+ public object ModuleContent
+ {
+ get { return (object)GetValue(ModuleContentProperty); }
+ set { SetValue(ModuleContentProperty, value); }
+ }
+
+ public static readonly DependencyProperty ModuleTitleProperty = DependencyProperty.Register("ModuleTitle", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
+ public static readonly DependencyProperty ModuleDescriptionProperty = DependencyProperty.Register("ModuleDescription", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
+ public static readonly DependencyProperty ModuleImageSourceProperty = DependencyProperty.Register("ModuleImageSource", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
+ public static readonly DependencyProperty ModuleContentProperty = DependencyProperty.Register("ModuleContent", typeof(object), typeof(SettingsPageControl), new PropertyMetadata(new Grid()));
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.cs
new file mode 100644
index 0000000000..a396fb7f21
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.cs
@@ -0,0 +1,158 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.ComponentModel;
+using Windows.UI.Accessibility;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Automation;
+using Windows.UI.Xaml.Controls;
+
+namespace Microsoft.PowerToys.Settings.UI.Controls
+{
+ [TemplateVisualState(Name = "Normal", GroupName = "CommonStates")]
+ [TemplateVisualState(Name = "Disabled", GroupName = "CommonStates")]
+ [TemplatePart(Name = PartIconPresenter, Type = typeof(ContentPresenter))]
+ [TemplatePart(Name = PartDescriptionPresenter, Type = typeof(ContentPresenter))]
+ public class Setting : ContentControl
+ {
+ private const string PartIconPresenter = "IconPresenter";
+ private const string PartDescriptionPresenter = "DescriptionPresenter";
+ private ContentPresenter _iconPresenter;
+ private ContentPresenter _descriptionPresenter;
+ private Setting _setting;
+
+ public Setting()
+ {
+ this.DefaultStyleKey = typeof(Setting);
+ }
+
+ public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register(
+ "Header",
+ typeof(string),
+ typeof(Setting),
+ new PropertyMetadata(default(string), OnHeaderChanged));
+
+ public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register(
+ "Description",
+ typeof(object),
+ typeof(Setting),
+ new PropertyMetadata(null, OnDescriptionChanged));
+
+ public static readonly DependencyProperty IconProperty = DependencyProperty.Register(
+ "Icon",
+ typeof(object),
+ typeof(Setting),
+ new PropertyMetadata(default(string), OnIconChanged));
+
+ public static readonly DependencyProperty ActionContentProperty = DependencyProperty.Register(
+ "ActionContent",
+ typeof(object),
+ typeof(Setting),
+ null);
+
+ [Localizable(true)]
+ public string Header
+ {
+ get => (string)GetValue(HeaderProperty);
+ set => SetValue(HeaderProperty, value);
+ }
+
+ [Localizable(true)]
+ public object Description
+ {
+ get => (object)GetValue(DescriptionProperty);
+ set => SetValue(DescriptionProperty, value);
+ }
+
+ public object Icon
+ {
+ get => (object)GetValue(IconProperty);
+ set => SetValue(IconProperty, value);
+ }
+
+ public object ActionContent
+ {
+ get => (object)GetValue(ActionContentProperty);
+ set => SetValue(ActionContentProperty, value);
+ }
+
+ protected override void OnApplyTemplate()
+ {
+ IsEnabledChanged -= Setting_IsEnabledChanged;
+ _setting = (Setting)this;
+ _iconPresenter = (ContentPresenter)_setting.GetTemplateChild(PartIconPresenter);
+ _descriptionPresenter = (ContentPresenter)_setting.GetTemplateChild(PartDescriptionPresenter);
+ Update();
+ SetEnabledState();
+ IsEnabledChanged += Setting_IsEnabledChanged;
+ base.OnApplyTemplate();
+ }
+
+ private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ ((Setting)d).Update();
+ }
+
+ private static void OnIconChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ ((Setting)d).Update();
+ }
+
+ private static void OnDescriptionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ ((Setting)d).Update();
+ }
+
+ private void Setting_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ SetEnabledState();
+ }
+
+ private void SetEnabledState()
+ {
+ VisualStateManager.GoToState(this, IsEnabled ? "Normal" : "Disabled", true);
+ }
+
+ private void Update()
+ {
+ if (_setting == null)
+ {
+ return;
+ }
+
+ if (_setting.ActionContent != null)
+ {
+ if (_setting.ActionContent.GetType() != typeof(Button))
+ {
+ // We do not want to override the default AutomationProperties.Name of a button. Its Content property already describes what it does.
+ if (!string.IsNullOrEmpty(_setting.Header))
+ {
+ AutomationProperties.SetName((UIElement)_setting.ActionContent, _setting.Header);
+ }
+ }
+ }
+
+ if (_setting._iconPresenter != null)
+ {
+ if (_setting.Icon == null)
+ {
+ _setting._iconPresenter.Visibility = Visibility.Collapsed;
+ }
+ else
+ {
+ _setting._iconPresenter.Visibility = Visibility.Visible;
+ }
+ }
+
+ if (_setting.Description == null)
+ {
+ _setting._descriptionPresenter.Visibility = Visibility.Collapsed;
+ }
+ else
+ {
+ _setting._descriptionPresenter.Visibility = Visibility.Visible;
+ }
+ }
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.xaml
new file mode 100644
index 0000000000..382d4972bc
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/Setting/Setting.xaml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingExpander/SettingExpander.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingExpander/SettingExpander.cs
new file mode 100644
index 0000000000..4d8aabcbd9
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingExpander/SettingExpander.cs
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.UI.Xaml.Controls;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Automation;
+
+namespace Microsoft.PowerToys.Settings.UI.Controls
+{
+ public partial class SettingExpander : Expander
+ {
+ public SettingExpander()
+ {
+ DefaultStyleKey = typeof(Expander);
+ this.Style = (Style)App.Current.Resources["SettingExpanderStyle"];
+ this.RegisterPropertyChangedCallback(Expander.HeaderProperty, OnHeaderChanged);
+ }
+
+ private static void OnHeaderChanged(DependencyObject d, DependencyProperty dp)
+ {
+ SettingExpander self = (SettingExpander)d;
+ if (self.Header != null)
+ {
+ if (self.Header.GetType() == typeof(Setting))
+ {
+ Setting selfSetting = (Setting)self.Header;
+ selfSetting.Style = (Style)App.Current.Resources["ExpanderHeaderSettingStyle"];
+
+ if (!string.IsNullOrEmpty(selfSetting.Header))
+ {
+ AutomationProperties.SetName(self, selfSetting.Header);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.cs
new file mode 100644
index 0000000000..8625b05b99
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.cs
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+
+namespace Microsoft.PowerToys.Settings.UI.Controls
+{
+ ///
+ /// Represents a control that can contain multiple settings (or other) controls
+ ///
+ [TemplateVisualState(Name = "Normal", GroupName = "CommonStates")]
+ [TemplateVisualState(Name = "Disabled", GroupName = "CommonStates")]
+ public partial class SettingsGroup : ItemsControl
+ {
+ public SettingsGroup()
+ {
+ DefaultStyleKey = typeof(SettingsGroup);
+ }
+
+ public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register(
+ "Header",
+ typeof(string),
+ typeof(SettingsGroup),
+ new PropertyMetadata(default(string)));
+
+ [Localizable(true)]
+ public string Header
+ {
+ get => (string)GetValue(HeaderProperty);
+ set => SetValue(HeaderProperty, value);
+ }
+
+ protected override void OnApplyTemplate()
+ {
+ IsEnabledChanged -= SettingsGroup_IsEnabledChanged;
+ SetEnabledState();
+ IsEnabledChanged += SettingsGroup_IsEnabledChanged;
+ base.OnApplyTemplate();
+ }
+
+ private void SettingsGroup_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ SetEnabledState();
+ }
+
+ private void SetEnabledState()
+ {
+ VisualStateManager.GoToState(this, IsEnabled ? "Normal" : "Disabled", true);
+ }
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.xaml
new file mode 100644
index 0000000000..9167346f49
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsGroup/SettingsGroup.xaml
@@ -0,0 +1,48 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SidePanelLink.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/PageLink.cs
similarity index 80%
rename from src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SidePanelLink.cs
rename to src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/PageLink.cs
index 02fe99db55..a1cc6b078c 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SidePanelLink.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/PageLink.cs
@@ -6,9 +6,9 @@ using System;
namespace Microsoft.PowerToys.Settings.UI.Controls
{
- public class SidePanelLink
+ public class PageLink
{
- public string Label { get; set; }
+ public string Text { get; set; }
public Uri Link { get; set; }
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml
new file mode 100644
index 0000000000..a4c606f286
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml.cs
similarity index 59%
rename from src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml.cs
rename to src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml.cs
index b8a74f24f3..d4fe3477e2 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SettingsPageControl/SettingsPageControl.xaml.cs
@@ -3,21 +3,9 @@
// See the LICENSE file in the project root for more information.
using System;
-using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Documents;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
namespace Microsoft.PowerToys.Settings.UI.Controls
{
@@ -26,22 +14,14 @@ namespace Microsoft.PowerToys.Settings.UI.Controls
public SettingsPageControl()
{
this.InitializeComponent();
- ModuleLinks = new ObservableCollection();
- AttributionLinks = new ObservableCollection();
+ PrimaryLinks = new ObservableCollection();
+ SecondaryLinks = new ObservableCollection();
}
- public object ModuleContent
- {
- get { return (object)GetValue(ModuleContentProperty); }
- set { SetValue(ModuleContentProperty, value); }
- }
-
- public static readonly DependencyProperty ModuleContentProperty = DependencyProperty.Register("Content", typeof(object), typeof(SettingsPageControl), new PropertyMetadata(new Grid()));
-
public string ModuleTitle
{
- get => (string)GetValue(ModuleTitleProperty);
- set => SetValue(ModuleTitleProperty, value);
+ get { return (string)GetValue(ModuleTitleProperty); }
+ set { SetValue(ModuleTitleProperty, value); }
}
public string ModuleDescription
@@ -63,26 +43,40 @@ namespace Microsoft.PowerToys.Settings.UI.Controls
}
#pragma warning disable CA2227 // Collection properties should be read only
- public ObservableCollection ModuleLinks
+ public ObservableCollection PrimaryLinks
#pragma warning restore CA2227 // Collection properties should be read only
{
- get => (ObservableCollection)GetValue(ModuleLinksProperty);
- set => SetValue(ModuleLinksProperty, value);
+ get => (ObservableCollection)GetValue(PrimaryLinksProperty);
+ set => SetValue(PrimaryLinksProperty, value);
+ }
+
+ public string SecondaryLinksHeader
+ {
+ get { return (string)GetValue(SecondaryLinksHeaderProperty); }
+ set { SetValue(SecondaryLinksHeaderProperty, value); }
}
#pragma warning disable CA2227 // Collection properties should be read only
- public ObservableCollection AttributionLinks
+ public ObservableCollection SecondaryLinks
#pragma warning restore CA2227 // Collection properties should be read only
{
- get => (ObservableCollection)GetValue(AttributionLinksProperty);
- set => SetValue(AttributionLinksProperty, value);
+ get => (ObservableCollection)GetValue(SecondaryLinksProperty);
+ set => SetValue(SecondaryLinksProperty, value);
+ }
+
+ public object ModuleContent
+ {
+ get { return (object)GetValue(ModuleContentProperty); }
+ set { SetValue(ModuleContentProperty, value); }
}
public static readonly DependencyProperty ModuleTitleProperty = DependencyProperty.Register("ModuleTitle", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
public static readonly DependencyProperty ModuleDescriptionProperty = DependencyProperty.Register("ModuleDescription", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
public static readonly DependencyProperty ModuleImageSourceProperty = DependencyProperty.Register("ModuleImageSource", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
public static readonly DependencyProperty ModuleImageLinkProperty = DependencyProperty.Register("ModuleImageLink", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
- public static readonly DependencyProperty ModuleLinksProperty = DependencyProperty.Register("ModuleLinks", typeof(ObservableCollection), typeof(SettingsPageControl), new PropertyMetadata(new ObservableCollection()));
- public static readonly DependencyProperty AttributionLinksProperty = DependencyProperty.Register("AttributionLinks", typeof(ObservableCollection), typeof(SettingsPageControl), new PropertyMetadata(new ObservableCollection()));
+ public static readonly DependencyProperty PrimaryLinksProperty = DependencyProperty.Register("PrimaryLinks", typeof(ObservableCollection), typeof(SettingsPageControl), new PropertyMetadata(new ObservableCollection()));
+ public static readonly DependencyProperty SecondaryLinksHeaderProperty = DependencyProperty.Register("SecondaryLinksHeader", typeof(string), typeof(SettingsPageControl), new PropertyMetadata(default(string)));
+ public static readonly DependencyProperty SecondaryLinksProperty = DependencyProperty.Register("SecondaryLinks", typeof(ObservableCollection), typeof(SettingsPageControl), new PropertyMetadata(new ObservableCollection()));
+ public static readonly DependencyProperty ModuleContentProperty = DependencyProperty.Register("ModuleContent", typeof(object), typeof(SettingsPageControl), new PropertyMetadata(new Grid()));
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml
deleted file mode 100644
index 5908d250f4..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Controls/SidePanel/SettingsPageControl.xaml
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/ModuleEnabledToOpacityConverter.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdateStateToBoolConverter.cs
similarity index 55%
rename from src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/ModuleEnabledToOpacityConverter.cs
rename to src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdateStateToBoolConverter.cs
index 0bfae0a848..1eec809aca 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/ModuleEnabledToOpacityConverter.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdateStateToBoolConverter.cs
@@ -3,24 +3,33 @@
// See the LICENSE file in the project root for more information.
using System;
-using Windows.UI.Xaml;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.PowerToys.Settings.UI.Library;
using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Media;
namespace Microsoft.PowerToys.Settings.UI.Converters
{
- public sealed class ModuleEnabledToOpacityConverter : IValueConverter
+ public sealed class UpdateStateToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
- bool isEnabled = (bool)value;
- if (isEnabled)
+ if (value == null || parameter == null)
{
- return 1.0;
+ return false;
}
else
{
- return 0.4;
+ if (value.ToString() == (string)parameter)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateCannotDownloadToVisibilityConverter.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateCannotDownloadToVisibilityConverter.cs
deleted file mode 100644
index 26748b6a3f..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateCannotDownloadToVisibilityConverter.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) Microsoft Corporation
-// The Microsoft Corporation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using Microsoft.PowerToys.Settings.UI.Library;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Data;
-
-namespace Microsoft.PowerToys.Settings.UI.Converters
-{
- public sealed class UpdatingStateCannotDownloadToVisibilityConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return (UpdatingSettings.UpdatingState)value == UpdatingSettings.UpdatingState.ErrorDownloading ? Visibility.Visible : Visibility.Collapsed;
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value;
- }
- }
-}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToDownloadToVisibilityConverter.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToDownloadToVisibilityConverter.cs
deleted file mode 100644
index d809338119..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToDownloadToVisibilityConverter.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) Microsoft Corporation
-// The Microsoft Corporation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using Microsoft.PowerToys.Settings.UI.Library;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Data;
-
-namespace Microsoft.PowerToys.Settings.UI.Converters
-{
- public sealed class UpdatingStateReadyToDownloadToVisibilityConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return (UpdatingSettings.UpdatingState)value == UpdatingSettings.UpdatingState.ReadyToDownload ? Visibility.Visible : Visibility.Collapsed;
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value;
- }
- }
-}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToInstallToVisibilityConverter.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToInstallToVisibilityConverter.cs
deleted file mode 100644
index c9ab831811..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateReadyToInstallToVisibilityConverter.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) Microsoft Corporation
-// The Microsoft Corporation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using Microsoft.PowerToys.Settings.UI.Library;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Data;
-
-namespace Microsoft.PowerToys.Settings.UI.Converters
-{
- public sealed class UpdatingStateReadyToInstallToVisibilityConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return (UpdatingSettings.UpdatingState)value == UpdatingSettings.UpdatingState.ReadyToInstall ? Visibility.Visible : Visibility.Collapsed;
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value;
- }
- }
-}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateUpToDateToVisibilityConverter.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateUpToDateToVisibilityConverter.cs
deleted file mode 100644
index c60e261d7a..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/UpdatingStateUpToDateToVisibilityConverter.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) Microsoft Corporation
-// The Microsoft Corporation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using Microsoft.PowerToys.Settings.UI.Library;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Data;
-
-namespace Microsoft.PowerToys.Settings.UI.Converters
-{
- public sealed class UpdatingStateUpToDateToVisibilityConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return (UpdatingSettings.UpdatingState)value == UpdatingSettings.UpdatingState.UpToDate ? Visibility.Visible : Visibility.Collapsed;
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value;
- }
- }
-}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Microsoft.PowerToys.Settings.UI.csproj b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Microsoft.PowerToys.Settings.UI.csproj
index 119079b125..c27ecd9e14 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Microsoft.PowerToys.Settings.UI.csproj
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Microsoft.PowerToys.Settings.UI.csproj
@@ -99,24 +99,26 @@
HotkeySettingsControl.xaml
+
+
+
ShortcutTextControl.xaml
ShortcutVisualControl.xaml
-
+
SettingsPageControl.xaml
-
+
+ OOBEPageControl.xaml
+
+
-
-
-
-
-
+
Code
@@ -225,6 +227,7 @@
+
@@ -267,16 +270,16 @@
- 6.2.10
+ 6.2.12
- 6.1.1
+ 7.0.2
- 6.1.1
+ 7.0.2
- 6.1.2
+ 6.1.3
2.6.0-prerelease.210623001
@@ -307,6 +310,14 @@
Designer
MSBuild:Compile
+
+ MSBuild:Compile
+ Designer
+
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -315,7 +326,11 @@
Designer
MSBuild:Compile
-
+
+ Designer
+ MSBuild:Compile
+
+
Designer
MSBuild:Compile
@@ -371,29 +386,21 @@
Designer
MSBuild:Compile
-
- MSBuild:Compile
- Designer
-
MSBuild:Compile
Designer
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
+
Designer
MSBuild:Compile
-
- MSBuild:Compile
+
Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
MSBuild:Compile
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeAwake.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeAwake.xaml
index 0a47c5765b..70e837e1e9 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeAwake.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeAwake.xaml
@@ -5,67 +5,33 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
- xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
-
+
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
+
+
+
+
+
-
-
-
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeColorPicker.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeColorPicker.xaml
index 35c6d1df2c..5e00a78690 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeColorPicker.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeColorPicker.xaml
@@ -6,73 +6,34 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
- xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
-
+
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFancyZones.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFancyZones.xaml
index d6640f14f7..c3a6fb323a 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFancyZones.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFancyZones.xaml
@@ -6,67 +6,33 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+ Style="{ThemeResource OobeSubtitleStyle}" />
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFileExplorer.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFileExplorer.xaml
index d4c78dbba9..f6fd101a02 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFileExplorer.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeFileExplorer.xaml
@@ -5,63 +5,28 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
-
-
-
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeImageResizer.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeImageResizer.xaml
index e1ee1b3bcb..7a8532b3fe 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeImageResizer.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeImageResizer.xaml
@@ -6,68 +6,33 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeKBM.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeKBM.xaml
index 02eb63e59a..93461d5389 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeKBM.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeKBM.xaml
@@ -1,72 +1,36 @@
+ mc:Ignorable="d">
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeOverview.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeOverview.xaml
index ac01aae0fd..f98508ddab 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeOverview.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeOverview.xaml
@@ -4,58 +4,32 @@
xmlns:local="using:Microsoft.PowerToys.Settings.UI.OOBE.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
+ mc:Ignorable="d">
-
-
-
-
-
+
-
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobePowerRename.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobePowerRename.xaml
index 5818798522..2f4dcd3c45 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobePowerRename.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobePowerRename.xaml
@@ -5,71 +5,32 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ mc:Ignorable="d">
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
+
-
-
-
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeRun.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeRun.xaml
index 0584a1fc17..8606f6d8b3 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeRun.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeRun.xaml
@@ -6,77 +6,34 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
+ Style="{ThemeResource OobeSubtitleStyle}"/>
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml
index eb7c1bb039..048fb9f0b8 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml
@@ -7,6 +7,7 @@
xmlns:localModels="using:Microsoft.PowerToys.Settings.UI.OOBE.ViewModel"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ winui:BackdropMaterial.ApplyToRootOrPageBackground="True"
mc:Ignorable="d"
Loaded="UserControl_Loaded">
@@ -19,18 +20,18 @@
-
-
+
+
-
+
-
+
@@ -52,17 +53,6 @@
IsBackButtonVisible="Collapsed"
MenuItemsSource="{x:Bind Modules, Mode=OneTime}"
MenuItemTemplate="{StaticResource NavigationViewMenuItem}">
-
-
-
-
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml.cs
index 13948e6343..c3aa2bd440 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShellPage.xaml.cs
@@ -5,9 +5,11 @@
using System;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
+using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.OOBE.Enums;
using Microsoft.PowerToys.Settings.UI.OOBE.ViewModel;
using Windows.ApplicationModel.Resources;
+using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
@@ -53,7 +55,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
DataContext = ViewModel;
OobeShellHandler = this;
-
+ UpdateUITheme();
Modules = new ObservableCollection();
ResourceLoader loader = ResourceLoader.GetForViewIndependentUse();
@@ -177,6 +179,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
PreviewImageSource = "ms-appx:///Assets/Modules/OOBE/OOBEShortcutGuide.png",
Link = "https://aka.ms/PowerToysOverview_ShortcutGuide",
});
+
/* Modules.Insert((int)PowerToysModulesEnum.VideoConference, new OobePowerToysModule()
{
ModuleName = loader.GetString("Oobe_VideoConference"),
@@ -227,5 +230,23 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
case "VideoConference": NavigationFrame.Navigate(typeof(OobeVideoConference)); break;
}
}
+
+ public void UpdateUITheme()
+ {
+ var settingsUtils = new SettingsUtils();
+ var generalSettings = SettingsRepository.GetInstance(settingsUtils);
+ switch (generalSettings.SettingsConfig.Theme.ToUpperInvariant())
+ {
+ case "LIGHT":
+ this.RequestedTheme = ElementTheme.Light;
+ break;
+ case "DARK":
+ this.RequestedTheme = ElementTheme.Dark;
+ break;
+ case "SYSTEM":
+ this.RequestedTheme = ElementTheme.Default;
+ break;
+ }
+ }
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShortcutGuide.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShortcutGuide.xaml
index f4aeddd08d..fde4c61ab2 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShortcutGuide.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeShortcutGuide.xaml
@@ -6,69 +6,28 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ mc:Ignorable="d">
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeVideoConference.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeVideoConference.xaml
index db54d9f518..22a957aed0 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeVideoConference.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/OOBE/Views/OobeVideoConference.xaml
@@ -6,62 +6,28 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Style="{ThemeResource OobeSubtitleStyle}" />
-
-
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
index 3a57b66d30..eb1f8eb293 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
@@ -122,14 +122,13 @@
Navigation view item name for Video Conference
- Enable Video Conference
+ Enable Video Conference Mute
-
- Video Conference Mute is a quick and easy way to do an global "mute" of both your microphone and webcam.
-Disabling this module or closing PowerToys will unmute the microphone and camera.
+
+ Video Conference Mute is a quick and easy way to do an global "mute" of both your microphone and webcam. Disabling this module or closing PowerToys will unmute the microphone and camera.
- Mute camera and microphone
+ Mute camera & microphone
Mute microphone
@@ -143,7 +142,7 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Selected microphone
-
+
Camera overlay image
@@ -185,19 +184,19 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Hide toolbar when both camera and microphone are unmuted
-
- About Video Conference
+
+ Video Conference Mute
-
+
Camera
-
+
Microphone
-
+
Toolbar
-
+
Shortcuts
@@ -261,8 +260,8 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Current configuration
Keyboard Manager current configuration header
-
- Reconfigure your keyboard by remapping keys and shortcuts.
+
+ Reconfigure your keyboard by remapping keys and shortcuts
Keyboard Manager page description
@@ -276,21 +275,35 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Select the profile to display the active key remap and shortcuts
Keyboard Manager configuration dropdown description
-
+
Remap a key
Keyboard Manager remap keyboard button content
-
- Remap keys
+
+ Remap a key
+ Keyboard Manager remap keyboard button content
+
+
+ Keys
Keyboard Manager remap keyboard header
-
+
Remap a shortcut
Keyboard Manager remap shortcuts button
-
- Remap shortcuts
- Keyboard Manager remap shortcuts header
+
+ Remap a shortcut
+ Keyboard Manager remap shortcuts button
+
+
+ Shortcuts
+ Keyboard Manager remap keyboard header
+
+
+ Shortcuts
+
+
+ Shortcut
Current Key Remappings
@@ -319,7 +332,7 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Keyboard Manager
do not loc, product name
-
+
Quick and simple system-wide color picker.
@@ -329,18 +342,14 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Change cursor when picking a color
-
- Activate Color Picker
- do not loc product name
-
-
+
A quick launcher that has additional capabilities without sacrificing performance.
Enable PowerToys Run
do not loc the Product name. Do you want this feature on / off
-
+
Search & results
@@ -370,9 +379,6 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Maximum number of results
-
- Shortcuts
-
Open PowerToys Run
@@ -409,7 +415,7 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
FancyZones windows
do not loc the Product name
-
+
Create window layouts to help make multi-tasking easy.
windows refers to application windows
@@ -421,11 +427,11 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Enable FancyZones
do not loc the Product name. Do you want this feature on / off
-
+
Excluded apps
-
- To exclude an application from snapping to zones add its name here (one per line). These apps will react only to Windows Snap.
+
+ Excludes an application from snapping to zones and will only react to Windows Snap - add one application name per line
Zone opacity
@@ -440,10 +446,18 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Information Symbol
-
+
Launch layout editor
launches the FancyZones layout editor application
+
+ Launch layout editor
+ launches the FancyZones layout editor application
+
+
+ Set and manage your layouts
+ launches the FancyZones layout editor application
+
Make dragged window transparent
@@ -453,8 +467,11 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Move windows between zones across all monitors
-
- Override Windows Snap shortcut (Win + Arrow) to move windows between zones
+
+ Override Windows Snap
+
+
+ This overrides the Windows Snap shortcut (Win + arrow) to move windows between zones
Hold Shift key to activate zones while dragging
@@ -467,33 +484,35 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
windows refers to application windows
- Move newly created windows to the current active monitor (EXPERIMENTAL)
+ Move newly created windows to the current active monitor (Experimental)
-
- Follow mouse cursor instead of focus when launching editor in a multi screen environment
+
+ Launch editor where mouse cursor is
-
+
+ When using multiple screens, the editor will launch on the screen where the mouse cursor is
+
+
Zone behavior
-
+
+ Manage how zones behave when using FancyZones
+
+
+ Zones
+
+
Zone highlight color
During zone layout changes, windows assigned to a zone will match new size/positions
-
- Give feedback
-
-
- Learn more
- This label is there to point people to additional overview for how to use the product
-
Attribution
giving credit to the projects this utility was based on
-
- About PowerToys
+
+ General
Check for updates
@@ -501,28 +520,31 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Update now
-
+
Privacy statement
-
+
Report a bug
Report an issue inside powertoys
-
+
Request a feature
Tell our team what we should build
- Restart as administrator
+ Restart PowerToys as administrator
running PowerToys as a higher level user, account is typically referred to as an admin / administrator
-
+
Run at startup
-
+
+ PowerToys will launch automatically
+
+
A Windows Shell extension for more advanced bulk renaming using search and replace or regular expressions.
-
+
Shell integration
This refers to directly integrating in with Windows
@@ -534,16 +556,22 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Settings theme
- Show icon on context menu
+ Show in default context menu's
+
+
+ PowerRename appears in the default context menu whenever you right-click one or multiple files
- Appear only in extended context menu (Shift + Right-click)
+ Show in extended context menu's
+
+
+ PowerRename only appears in extended context menu's (press Shift + right-click)
Maximum number of items
-
- Show values from last use
+
+ Show recently used strings
Enable Markdown (.md) preview
@@ -557,32 +585,32 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Enable SVG (.svg) thumbnails
Do you want this feature on / off
-
+
These settings allow you to manage your Windows File Explorer custom preview handlers.
-
- Autocomplete
+
+ Auto-complete
-
+
Open-source notice
-
- Enable autocomplete for the search and replace fields
+
+ Enable auto-complete for the search and replace fields
-
+
Zone border color
-
+
Zone inactive color
-
+
Shows a help overlay with Windows shortcuts when the Windows key is pressed.
Press duration before showing (ms)
pressing a key in milliseconds
-
+
Appearance & behavior
@@ -592,20 +620,20 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Opacity of background
-
- Disable for apps
+
+ Exclude apps
-
- Turn off Shortcut Guide when these applications have focus. Add one application name per line.
+
+ Turns off Shortcut Guide when these applications have focus - add one application name per line
Example: outlook.exe
Don't translate outlook.exe
-
+
Image sizes
-
+
Lets you resize images by right-clicking.
@@ -637,15 +665,11 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Remove
Removes a user defined setting group for Image Resizer
-
- Remove
- Removes a user defined setting group for Image Resizer
-
Image Resizer
-
- Add size
+
+ Add a size
Save sizes
@@ -659,7 +683,7 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
TIFF compression
-
+
File
as in a computer file
@@ -744,11 +768,14 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
On
-
+
Learn more about administrator mode
- Download updates automatically (Except on metered connections)
+ Download updates automatically
+
+
+ Except on metered connections
Currently running as administrator
@@ -762,53 +789,50 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Running as administrator
-
- About FancyZones
+
+ FancyZones
-
- About File Explorer
+
+ File Explorer
File Explorer
Use same translation as Windows does for File Explorer
-
- About Image Resizer
+
+ Image Resizer
-
- About Keyboard Manager
+
+ Keyboard Manager
-
- About Color Picker
+
+ Color Picker
-
- About PowerToys Run
+
+ PowerToys Run
PowerToys Run
-
- About PowerRename
+
+ PowerRename
do not loc the product name
PowerRename
do not loc
-
- About Shortcut Guide
+
+ Shortcut Guide
Shortcut Guide
-
+
GitHub repository
-
- Updates
-
-
- Installed version:
+
+ Version
Last checked:
@@ -816,11 +840,11 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
Version
-
+
Administrator mode
-
- * You need to run as administrator to use this setting.
+
+ You need to run as administrator to use this setting.
Only shortcuts with the following hotkeys are valid:
@@ -835,24 +859,23 @@ Disabling this module or closing PowerToys will unmute the microphone and camera
The following parameters can be used:
-
+
Filename format
Use original date modified
-
+
Encoding
-
- Remap keys to other keys or shortcuts.
+
+ Remap keys to other keys or shortcuts
-
- Remap shortcuts to other shortcuts or keys. Additionally, mappings can be targeted to specific applications as well.
+
+ Remap shortcuts to other shortcuts or keys for all or specific applications
-
+
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity.
-
Made with 💗 by Microsoft and the PowerToys community.
Windows refers to the OS
@@ -887,19 +910,19 @@ Made with 💗 by Microsoft and the PowerToys community.
PowerToys is up to date.
-
+
Icon Preview
-
+
Preview Pane
-
- * You need to run as administrator to modify these settings.
+
+ You need to run as administrator to modify these settings.
-
+
The settings on this page affect all users on the system
-
+
A reboot may be required for changes to these settings to take effect
@@ -909,7 +932,7 @@ Made with 💗 by Microsoft and the PowerToys community.
Example: %1 (%2)
-
+
Choose a mode
@@ -924,17 +947,21 @@ Made with 💗 by Microsoft and the PowerToys community.
Windows default
Windows refers to the Operating system
-
+
Windows color settings
Windows refers to the Operating system
- Color format for clipboard
+ Default color format
Color Picker with editor mode enabled
do not loc the product name
+
+ Color Picker with editor mode enabled
+ do not loc the product name
+
Pick a color from the screen, copy formatted value to clipboard, then to the editor
do not loc the product name
@@ -942,28 +969,45 @@ Made with 💗 by Microsoft and the PowerToys community.
Editor
-
+
+ Editor
+
+
Activation behavior
-
+
Picker behavior
+
+ This format will be copied to your clipboard
+
Learn more about remapping limitations
This is a link that will discuss what is and is not possible for Keyboard manager to remap
-
+
Editor
refers to the FancyZone editor
-
+
Window behavior
-
+
+ Manage how windows behave when using FancyZones
+
+
+ Windows
+ refers to a set of windows, not the product name
+
+
Behavior
-
- Use Boost library (provides extended features but may use different regex syntax)
+
+ Use Boost library
+ Boost is a product name, should not be translated
+
+
+ Provides extended features but may use different regex syntax
Boost is a product name, should not be translated
@@ -973,18 +1017,34 @@ Made with 💗 by Microsoft and the PowerToys community.
Color Picker only
do not loc the product name
+
+ Color Picker only
+ do not loc the product name
+
Pick a color from the screen and copy formatted value to clipboard
Open directly into the editor mode
-
- Editor color formats
+
+ Color formats
-
+
+ Select which color formats (and in what order) should show up in the editor
+
+
+ Move up
+
+
+ Move down
+
+
Show color name
+
+ This will show the name of the color when picking a color
+
Large
The size of the image
@@ -1007,7 +1067,7 @@ Made with 💗 by Microsoft and the PowerToys community.
Win + Left/Right to move windows based on zone index
-
+
Editor
@@ -1023,13 +1083,13 @@ Made with 💗 by Microsoft and the PowerToys community.
Activate the smallest zone by area
- When multiple zones overlap:
+ When multiple zones overlap
-
+
Plugins
-
- Direct activation phrase
+
+ Direct activation command
Authored by
@@ -1044,23 +1104,33 @@ Made with 💗 by Microsoft and the PowerToys community.
Additional options
-
- * Please define an activation phrase or allow this plugin for the global results to use it.
+
+ Please define an activation command or allow this plugin for the global results to use it.
-
- * PowerToys Run can't provide any results without plugins. Please enable at least one plugin.
+
+ PowerToys Run can't provide any results without plugins
-
- * This activation phrase overrides the behavior of other plugins. Please change it to something else.
+
+ Enable at least one plugin to get started
-
- You can include or remove each plugin from the global results, change the direct activation phrase and configure additional options.
+
+ This activation command is already in use by another plugin.
-
+
+ Plugins
+
+
+ You can include or remove each plugin from the global results, change the direct activation phrase and configure additional options
+
+
Position & appearance
-
- Show PowerToys Run on
+
+ Preferred monitor position
+ as in Show PowerToys Run on primary monitor
+
+
+ If multiple monitors are in use, PowerToys Run can be launched on the desired monitor
as in Show PowerToys Run on primary monitor
@@ -1084,14 +1154,20 @@ Made with 💗 by Microsoft and the PowerToys community.
Flash zones when switching layout
-
+
+ Layouts
+
+
Enable quick layout switch
+
+ You can configure layout-specific shortcuts in the editor
+
Quick layout switch
-
- Open Shortcut Guide
+
+ Activation shortcut
Let's get started!
@@ -1105,6 +1181,9 @@ Made with 💗 by Microsoft and the PowerToys community.
Launch
+
+ Launch Color Picker
+
Learn more about
@@ -1135,18 +1214,19 @@ Made with 💗 by Microsoft and the PowerToys community.
Video Conference Mute allows users to quickly mute the microphone and turn off the camera while on a conference call with a single keystroke, regardless of what application has focus on your computer.
-
- For returning users, check out what is new in our
-
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows 10 experience for greater productivity.
-Take a moment to preview the various utilities listed or view our comprehensive documentation on
+
+Take a moment to preview the various utilities listed or view our comprehensive documentation.
- Microsoft Docs
+ Documentation on Microsoft Docs
- release notes
+ Release notes
+
+
+ Release notes
{Win} + {Shift} + {C} to open Color Picker.
@@ -1219,10 +1299,6 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
FancyZones
Do not localize this string
-
- File Explorer add-ons
- Do not localize this string
-
Image Resizer
Do not localize this string
@@ -1247,17 +1323,21 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
Do not localize this string
- Video Conference
+ Video Conference Mute
Do not localize this string
Welcome
-
- Settings
+
+ Open Settings
-
+
Welcome to PowerToys
+ Don't loc "PowerToys"
+
+
+ Give feedback
Welcome to PowerToys
@@ -1265,17 +1345,17 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
PowerToys Settings
-
- About Awake
+
+ Awake
-
+
A convenient way to keep your PC awake on-demand.
Enable Awake
- Off (Passive)
+ Inactive
Keep awake indefinitely
@@ -1292,13 +1372,13 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
Keeps your PC awake until the set time elapses
-
+
Keep screen on
-
+
Mode
-
+
Behavior
@@ -1320,8 +1400,8 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
You can always change modes quickly by {right-clicking the Awake icon} in the system tray.
-
- * An error occurred trying to update to
+
+ An error occurred trying to install this update:
Install now
@@ -1329,22 +1409,22 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
Read more
-
- A new version is available:
+
+ An update is available:
Downloading...
- Try again to download and install
+ Try again to download & install
Checking for updates...
-
- A new version is ready to install:
+
+ An update is ready to install:
-
+
PowerToys is up to date
@@ -1371,9 +1451,6 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
Pixels
-
- Edit
-
Edit
@@ -1388,16 +1465,112 @@ From there, simply click on a Markdown file or SVG icon in the File Explorer and
Yes
Label of a confirmation button
-
- Learn more
+
+ See what's new
+
+
+ Set the preferred behaviour or Awake
+
+
+ Excluded apps
+
+
+ Enable colorformat
+
+
+ More options
+
+
+ More options
+
+
+ to
+ as in: from x to y
+
+
+ Learn more about Awake
+ Awake is a product name, do not loc
+
+
+ Learn more about Color Picker
+ Color Picker is a product name, do not loc
+
+
+ Learn more about FancyZones
+ FancyZones is a product name, do not loc
+
+
+ Learn more about Image Resizer
+ Image Resizer is a product name, do not loc
+
+
+ Learn more about Keyboard Manager
+ Keyboard Manager is a product name, do not loc
+
+
+ Learn more about File Explorer add-ons
+ File Explorer is a product name, do not loc
+
+
+ Learn more about PowerRename
+ PowerRename is a product name, do not loc
+
+
+ Learn more about PowerToys Run
+ PowerToys Run is a product name, do not loc
+
+
+ Learn more about Shortcut Guide
+ Shortcut Guide is a product name, do not loc
+
+
+ Learn more about Video Conference Mute
+ Video Conference Mute is a product name, do not loc
+
+
+ File Explorer add-ons
+ Do not localize this string
+
+
+ Launch PowerToys Run
+
+
+ Launch Shortcut Guide
Show format in editor
-
- Open documentation
+
+ Documentation
Search this list
-
+
+ Search this list
+
+
+ Attribution
+
+
+ Attribution
+
+
+ Related information
+
+
+ Attribution
+
+
+ Attribution
+
+
+ Attribution
+
+
+ Edit
+
+
+ Remove
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Button.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Button.xaml
index 8a20e47cb3..c8251a0e23 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Button.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Button.xaml
@@ -1,74 +1,508 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:contract7Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,7)"
+ xmlns:contract7NotPresent="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,7)">
-
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Page.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Page.xaml
deleted file mode 100644
index 24de3e2e70..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/Page.xaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/TextBlock.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/TextBlock.xaml
index 48fce3371a..6f091a32d6 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/TextBlock.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/TextBlock.xaml
@@ -2,40 +2,22 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Colors.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Colors.xaml
deleted file mode 100644
index 572145daf8..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Colors.xaml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_FontSizes.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_FontSizes.xaml
deleted file mode 100644
index 7160b32323..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_FontSizes.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 24
- 16
-
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Sizes.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Sizes.xaml
deleted file mode 100644
index 0cb03dfbb4..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Sizes.xaml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
- 240
-
-
- 720
-
-
- 600
-
-
- 24
-
-
- 24
-
-
- 460
-
-
- 444
-
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Thickness.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Thickness.xaml
deleted file mode 100644
index e97bde0c63..0000000000
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Styles/_Thickness.xaml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- 24,0,0,0
- 0,24,0,0
- 24,0,24,0
- 0,0,24,0
- 0,24,0,24
- 24,24,24,24
- 24,0,24,24
- 0,0,0,24
-
-
- 12, 0, 0, 0
- 0, 12, 0, 0
- 0, 12, 0, 12
- 0, 0, 0, 12
- 12, 0, 12, 0
- 0, 0, 12, 0
- 12, 0, 12, 12
- 12, 12, 12, 12
-
- -10, 12, 0, 0
-
-
- 8, 0, 0, 0
- 0, 8, 0, 0
- 0, 0, 0, 8
- 8, 8, 8, 8
-
-
- 0, 4, 0, 0
- 0, 4, 4, 4
-
-
- 32, 24, 32, 24
-
-
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Colors.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Colors.xaml
new file mode 100644
index 0000000000..a3c1036e83
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Colors.xaml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 2
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Generic.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Generic.xaml
new file mode 100644
index 0000000000..c1f16179e8
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/Generic.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/SettingsExpanderStyles.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/SettingsExpanderStyles.xaml
new file mode 100644
index 0000000000..9c6b088c91
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Themes/SettingsExpanderStyles.xaml
@@ -0,0 +1,50 @@
+
+
+
+ 0
+ 56, 8, 40, 8
+
+ Transparent
+
+
+
+
+
+ 0,0,8,0
+
+
+
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/AwakePage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/AwakePage.xaml
index 806e87f377..63131f5860 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/AwakePage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/AwakePage.xaml
@@ -5,109 +5,120 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:c="using:Microsoft.PowerToys.Settings.UI.Converters"
- xmlns:muxc="using:Microsoft.UI.Xaml.Controls" xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
+ xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml
index 0388b2a6b8..7ef59703c9 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml
@@ -5,224 +5,98 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
- xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
+ xmlns:models="using:Microsoft.PowerToys.Settings.UI.Library"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
-
+ x:Name="ColorPickerView">
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml.cs
index 9ef3a0f604..4dcd8a173a 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ColorPickerPage.xaml.cs
@@ -50,7 +50,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views
private void ReorderButtonUp_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
- ColorFormatModel color = ((Button)sender).DataContext as ColorFormatModel;
+ ColorFormatModel color = ((MenuFlyoutItem)sender).DataContext as ColorFormatModel;
if (color == null)
{
return;
@@ -65,7 +65,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views
private void ReorderButtonDown_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
- ColorFormatModel color = ((Button)sender).DataContext as ColorFormatModel;
+ ColorFormatModel color = ((MenuFlyoutItem)sender).DataContext as ColorFormatModel;
if (color == null)
{
return;
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/FancyZonesPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/FancyZonesPage.xaml
index 963a4d9ef8..88c600304d 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/FancyZonesPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/FancyZonesPage.xaml
@@ -8,310 +8,289 @@
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml
index f1501fb0b5..3794fb94ab 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml
@@ -7,227 +7,233 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters"
xmlns:localConverters="using:Microsoft.PowerToys.Settings.UI.Converters"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml.cs
index e792229520..e5f2055dc8 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/GeneralPage.xaml.cs
@@ -85,10 +85,5 @@ namespace Microsoft.PowerToys.Settings.UI.Views
{
Helpers.StartProcessHelper.Start(Helpers.StartProcessHelper.ColorsSettings);
}
-
- private void OobeButton_Click(object sender, RoutedEventArgs e)
- {
- ShellPage.OpenOobeWindowCallback();
- }
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ImageResizerPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ImageResizerPage.xaml
index 5770c76340..c93a9fce11 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ImageResizerPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ImageResizerPage.xaml
@@ -10,64 +10,81 @@
xmlns:converters="using:Microsoft.PowerToys.Settings.UI.Converters"
xmlns:toolkitconverters="using:Microsoft.Toolkit.Uwp.UI.Converters"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main" x:Name="RootPage">
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/KeyboardManagerPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/KeyboardManagerPage.xaml
index a21fac9b67..793578b88b 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/KeyboardManagerPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/KeyboardManagerPage.xaml
@@ -5,11 +5,9 @@
xmlns:local="using:Microsoft.PowerToys.Settings.UI.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:extensions="using:Microsoft.Toolkit.Uwp.UI.Extensions"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
xmlns:Lib="using:Microsoft.PowerToys.Settings.UI.Library"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
@@ -17,296 +15,205 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml
index 090832fb6d..63e81723d0 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml
@@ -11,7 +11,6 @@
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
@@ -19,27 +18,49 @@
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml.cs
index d522ea7ae0..b0f89da38c 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerLauncherPage.xaml.cs
@@ -66,15 +66,6 @@ namespace Microsoft.PowerToys.Settings.UI.Views
Helpers.StartProcessHelper.Start(Helpers.StartProcessHelper.ColorsSettings);
}
- private void PluginsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- var selectedPlugin = (sender as ListView)?.SelectedItem;
- foreach (var plugin in ViewModel.Plugins)
- {
- plugin.ShowAdditionalInfoPanel = plugin == selectedPlugin;
- }
- }
-
/*
public Tuple SelectedSearchResultPreference
{
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerPreviewPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerPreviewPage.xaml
index 95d060e5b7..ef824174bb 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerPreviewPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerPreviewPage.xaml
@@ -6,63 +6,71 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
+
-
-
+
-
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerRenamePage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerRenamePage.xaml
index 30dcd0eb5f..6bd78ca222 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerRenamePage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/PowerRenamePage.xaml
@@ -7,82 +7,89 @@
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
+ HorizontalAlignment="Stretch">
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml
index db375f5f2c..6bf5be0c50 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml
@@ -4,12 +4,12 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:behaviors="using:Microsoft.PowerToys.Settings.UI.Behaviors"
- xmlns:winui="using:Microsoft.UI.Xaml.Controls"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:helpers="using:Microsoft.PowerToys.Settings.UI.Helpers"
xmlns:views="using:Microsoft.PowerToys.Settings.UI.Views"
xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
xmlns:i="using:Microsoft.Xaml.Interactivity"
+ muxc:BackdropMaterial.ApplyToRootOrPageBackground="True"
mc:Ignorable="d">
@@ -18,115 +18,154 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs
index 9791021990..9af1114013 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs
@@ -7,10 +7,11 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Microsoft.PowerToys.Settings.UI.Services;
using Microsoft.PowerToys.Settings.UI.ViewModels;
-using Windows.ApplicationModel.Resources;
using Windows.Data.Json;
+using Windows.UI.Xaml;
using Windows.UI.Xaml.Automation.Peers;
using Windows.UI.Xaml.Controls;
+using WinUI = Microsoft.UI.Xaml.Controls;
namespace Microsoft.PowerToys.Settings.UI.Views
{
@@ -158,10 +159,9 @@ namespace Microsoft.PowerToys.Settings.UI.Views
shellFrame.Navigate(typeof(GeneralPage));
}
- [SuppressMessage("Usage", "CA1801:Review unused parameters", Justification = "Params are required for event handler signature requirements.")]
- private void NavigationView_SelectionChanged(Microsoft.UI.Xaml.Controls.NavigationView sender, Microsoft.UI.Xaml.Controls.NavigationViewSelectionChangedEventArgs args)
+ private void OobeButton_Click(object sender, RoutedEventArgs e)
{
- scrollViewer.ChangeView(null, 0, null, true);
+ OpenOobeWindowCallback();
}
private bool navigationViewInitialStateProcessed; // avoid announcing initial state of the navigation pane.
@@ -218,6 +218,15 @@ namespace Microsoft.PowerToys.Settings.UI.Views
"navigationMenuPaneClosed");
}
}
-#pragma warning restore CA1822 // Mark members as static
+
+ private void OOBEItem_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
+ {
+ OpenOobeWindowCallback();
+ }
+
+ private async void FeedbackItem_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
+ {
+ await Windows.System.Launcher.LaunchUriAsync(new Uri("https://aka.ms/powerToysGiveFeedback"));
+ }
}
}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShortcutGuidePage.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShortcutGuidePage.xaml
index bc755c18c7..db66227285 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShortcutGuidePage.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/ShortcutGuidePage.xaml
@@ -5,105 +5,96 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
AutomationProperties.LandmarkType="Main">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/VideoConference.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/VideoConference.xaml
index 00e8450ee1..9babb7cc95 100644
--- a/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/VideoConference.xaml
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI/Views/VideoConference.xaml
@@ -5,145 +5,162 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
- mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ mc:Ignorable="d">
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
+
-
+
+
+
+
+
+
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
\ No newline at end of file