From df48a33bb99aecb8d4cfb5375f0e965f8afbbd04 Mon Sep 17 00:00:00 2001 From: Neil McAlister Date: Mon, 13 Jan 2025 17:13:16 +0200 Subject: [PATCH] [WinUI3]Fix Windows 10 title bar borders (#36429) * Fix borders for windows in the Settings UI * Fix HOSTS window * Fix Advanced Paste * Fix Environment Variables * Fix File Locksmith * Fix Peek, with a caveat * Fix Registry Preview * Remove unused imports * Clean up imports in OobeShellPage * Move OSVersionHelper from Common.UI up into ManagedCommon --- src/common/ManagedCommon/NativeMethods.cs | 12 ++++++++++++ .../OSVersionHelper.cs | 7 ++++++- src/common/ManagedCommon/WindowHelpers.cs | 15 +++++++++++++++ .../AdvancedPasteXAML/MainWindow.xaml.cs | 1 + .../EnvironmentVariablesXAML/MainWindow.xaml.cs | 1 + .../FileLocksmithXAML/MainWindow.xaml.cs | 3 ++- .../Hosts/Hosts/HostsXAML/MainWindow.xaml.cs | 1 + .../ColorPickerUI/ColorEditorWindow.xaml.cs | 2 +- .../imageresizer/ui/Views/MainWindow.xaml.cs | 3 +-- .../launcher/PowerLauncher/Helper/ThemeManager.cs | 7 ++++--- .../launcher/PowerLauncher/MainWindow.xaml.cs | 1 + .../Common/VirtualDesktop/VirtualDesktopHelper.cs | 3 +-- .../peek/Peek.UI/PeekXAML/MainWindow.xaml.cs | 3 ++- .../peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs | 2 +- .../RegistryPreviewXAML/MainWindow.xaml.cs | 5 +++-- .../Settings.UI/Helpers/StartProcessHelper.cs | 3 +-- .../Settings.UI/SettingsXAML/App.xaml.cs | 7 +++++++ .../SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs | 4 +++- .../SettingsXAML/Views/ShellPage.xaml.cs | 2 ++ .../ViewModels/AlwaysOnTopViewModel.cs | 3 +-- .../Settings.UI/ViewModels/FancyZonesViewModel.cs | 3 +-- .../Settings.UI/ViewModels/NewPlusViewModel.cs | 2 -- .../Settings.UI/ViewModels/PowerOcrViewModel.cs | 3 +-- 23 files changed, 68 insertions(+), 25 deletions(-) rename src/common/{Common.UI => ManagedCommon}/OSVersionHelper.cs (75%) diff --git a/src/common/ManagedCommon/NativeMethods.cs b/src/common/ManagedCommon/NativeMethods.cs index feffafa946..998010f10a 100644 --- a/src/common/ManagedCommon/NativeMethods.cs +++ b/src/common/ManagedCommon/NativeMethods.cs @@ -42,6 +42,9 @@ namespace ManagedCommon [DllImport("user32.dll")] internal static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize); + [DllImport("dwmapi")] + internal static extern IntPtr DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset); + [StructLayout(LayoutKind.Sequential)] public struct INPUT { @@ -100,5 +103,14 @@ namespace ManagedCommon INPUT_KEYBOARD = 1, INPUT_HARDWARE = 2, } + + [StructLayout(LayoutKind.Sequential)] + internal struct MARGINS + { + public int cxLeftWidth; + public int cxRightWidth; + public int cyTopHeight; + public int cyBottomHeight; + } } } diff --git a/src/common/Common.UI/OSVersionHelper.cs b/src/common/ManagedCommon/OSVersionHelper.cs similarity index 75% rename from src/common/Common.UI/OSVersionHelper.cs rename to src/common/ManagedCommon/OSVersionHelper.cs index aa2a2a953a..6a865b7ae1 100644 --- a/src/common/Common.UI/OSVersionHelper.cs +++ b/src/common/ManagedCommon/OSVersionHelper.cs @@ -4,10 +4,15 @@ using System; -namespace Common.UI +namespace ManagedCommon { public static class OSVersionHelper { + public static bool IsWindows10() + { + return Environment.OSVersion.Version.Major >= 10 && Environment.OSVersion.Version.Minor < 22000; + } + public static bool IsWindows11() { return Environment.OSVersion.Version.Major >= 10 && Environment.OSVersion.Version.Build >= 22000; diff --git a/src/common/ManagedCommon/WindowHelpers.cs b/src/common/ManagedCommon/WindowHelpers.cs index bd9d334722..c5ee13f69c 100644 --- a/src/common/ManagedCommon/WindowHelpers.cs +++ b/src/common/ManagedCommon/WindowHelpers.cs @@ -35,5 +35,20 @@ namespace ManagedCommon } } } + + /// + /// Workaround for a WinUI bug on Windows 10 in which a window's top border is always + /// black. Calls DwmExtendFrameIntoClientArea() with a cyTopHeight of 2 to force + /// the window's top border to be visible.

+ /// Is a no-op on versions other than Windows 10. + ///
+ public static void ForceTopBorder1PixelInsetOnWindows10(IntPtr handle) + { + if (OSVersionHelper.IsWindows10()) + { + var margins = new NativeMethods.MARGINS { cxLeftWidth = 0, cxRightWidth = 0, cyBottomHeight = 0, cyTopHeight = 2 }; + NativeMethods.DwmExtendFrameIntoClientArea(handle, ref margins); + } + } } } diff --git a/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/MainWindow.xaml.cs b/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/MainWindow.xaml.cs index 18295f2315..7743e6764b 100644 --- a/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/MainWindow.xaml.cs +++ b/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/MainWindow.xaml.cs @@ -82,6 +82,7 @@ namespace AdvancedPaste }; WindowHelpers.BringToForeground(this.GetWindowHandle()); + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(this.GetWindowHandle()); } private void OnActivated(object sender, WindowActivatedEventArgs args) diff --git a/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/MainWindow.xaml.cs b/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/MainWindow.xaml.cs index 891fadfe1d..57639312e1 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/MainWindow.xaml.cs +++ b/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/MainWindow.xaml.cs @@ -40,6 +40,7 @@ namespace EnvironmentVariables var handle = this.GetWindowHandle(); RegisterWindow(handle); + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(handle); WindowHelpers.BringToForeground(handle); MainPage = App.GetService(); diff --git a/src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithXAML/MainWindow.xaml.cs b/src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithXAML/MainWindow.xaml.cs index 324044d49f..bb4cfafe7b 100644 --- a/src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithXAML/MainWindow.xaml.cs +++ b/src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithXAML/MainWindow.xaml.cs @@ -3,7 +3,7 @@ // See the LICENSE file in the project root for more information. using System; - +using ManagedCommon; using Microsoft.UI.Windowing; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; @@ -22,6 +22,7 @@ namespace FileLocksmithUI SetTitleBar(AppTitleBar); Activated += MainWindow_Activated; AppWindow.SetIcon("Assets/FileLocksmith/Icon.ico"); + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(this.GetWindowHandle()); var loader = ResourceLoaderInstance.ResourceLoader; var title = isElevated ? loader.GetString("AppAdminTitle") : loader.GetString("AppTitle"); diff --git a/src/modules/Hosts/Hosts/HostsXAML/MainWindow.xaml.cs b/src/modules/Hosts/Hosts/HostsXAML/MainWindow.xaml.cs index d1632c21ee..bab06fcfbb 100644 --- a/src/modules/Hosts/Hosts/HostsXAML/MainWindow.xaml.cs +++ b/src/modules/Hosts/Hosts/HostsXAML/MainWindow.xaml.cs @@ -39,6 +39,7 @@ namespace Hosts var handle = this.GetWindowHandle(); + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(handle); WindowHelpers.BringToForeground(handle); Activated += MainWindow_Activated; diff --git a/src/modules/colorPicker/ColorPickerUI/ColorEditorWindow.xaml.cs b/src/modules/colorPicker/ColorPickerUI/ColorEditorWindow.xaml.cs index eb94d86d1e..323fa77b5e 100644 --- a/src/modules/colorPicker/ColorPickerUI/ColorEditorWindow.xaml.cs +++ b/src/modules/colorPicker/ColorPickerUI/ColorEditorWindow.xaml.cs @@ -5,7 +5,7 @@ using System; using ColorPicker.Helpers; -using Common.UI; +using ManagedCommon; using Wpf.Ui.Controls; namespace ColorPicker diff --git a/src/modules/imageresizer/ui/Views/MainWindow.xaml.cs b/src/modules/imageresizer/ui/Views/MainWindow.xaml.cs index c64a43552c..47092b602e 100644 --- a/src/modules/imageresizer/ui/Views/MainWindow.xaml.cs +++ b/src/modules/imageresizer/ui/Views/MainWindow.xaml.cs @@ -7,9 +7,8 @@ using System; using System.Collections.Generic; using System.Linq; - -using Common.UI; using ImageResizer.ViewModels; +using ManagedCommon; using Microsoft.Win32; using Wpf.Ui.Controls; diff --git a/src/modules/launcher/PowerLauncher/Helper/ThemeManager.cs b/src/modules/launcher/PowerLauncher/Helper/ThemeManager.cs index 67ad402218..4f7ff85b47 100644 --- a/src/modules/launcher/PowerLauncher/Helper/ThemeManager.cs +++ b/src/modules/launcher/PowerLauncher/Helper/ThemeManager.cs @@ -6,6 +6,7 @@ using System; using System.IO; using System.Windows; using System.Windows.Media; +using ManagedCommon; using Microsoft.Win32; using Wox.Infrastructure.Image; using Wox.Infrastructure.UserSettings; @@ -50,7 +51,7 @@ namespace PowerLauncher.Helper private void SetSystemTheme(ManagedCommon.Theme theme) { - _mainWindow.Background = Common.UI.OSVersionHelper.IsWindows11() is false ? SystemColors.WindowBrush : null; + _mainWindow.Background = OSVersionHelper.IsWindows11() is false ? SystemColors.WindowBrush : null; _mainWindow.Resources.MergedDictionaries.Clear(); _mainWindow.Resources.MergedDictionaries.Add(new ResourceDictionary @@ -66,7 +67,7 @@ namespace PowerLauncher.Helper Source = new Uri(themeString, UriKind.Absolute), }; _mainWindow.Resources.MergedDictionaries.Add(fluentThemeDictionary); - if (!Common.UI.OSVersionHelper.IsWindows11()) + if (!OSVersionHelper.IsWindows11()) { // Apply background only on Windows 10 // Windows theme does not work properly for dark and light mode so right now set the background color manual. @@ -95,7 +96,7 @@ namespace PowerLauncher.Helper { Source = new Uri(styleThemeString, UriKind.Relative), }); - if (Common.UI.OSVersionHelper.IsWindows11()) + if (OSVersionHelper.IsWindows11()) { // Apply background only on Windows 11 to keep the same style as WPFUI _mainWindow.Background = new SolidColorBrush diff --git a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs index f627116126..c19701f304 100644 --- a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs +++ b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs @@ -15,6 +15,7 @@ using System.Windows.Interop; using System.Windows.Media.Imaging; using Common.UI; +using ManagedCommon; using Microsoft.PowerLauncher.Telemetry; using Microsoft.PowerToys.Telemetry; using PowerLauncher.Helper; diff --git a/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs b/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs index 22eda6e28e..7770488551 100644 --- a/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs +++ b/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs @@ -7,8 +7,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; - -using Common.UI; +using ManagedCommon; using Microsoft.Win32; using Wox.Plugin.Common.VirtualDesktop.Interop; using Wox.Plugin.Common.Win32; diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs index ae94b0cb44..3ac494b652 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs +++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs @@ -48,7 +48,8 @@ namespace Peek.UI ViewModel = Application.Current.GetService(); TitleBarControl.SetTitleBarToWindow(this); - AppWindow.TitleBar.ExtendsContentIntoTitleBar = true; + ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(this.GetWindowHandle()); AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Tall; AppWindow.SetIcon("Assets/Peek/Icon.ico"); diff --git a/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs index 17d9724d79..7e2759cc5d 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs +++ b/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs @@ -231,7 +231,7 @@ namespace Peek.UI.Views if (AppWindowTitleBar.IsCustomizationSupported()) { AppWindow appWindow = mainWindow.AppWindow; - appWindow.TitleBar.ExtendsContentIntoTitleBar = true; + mainWindow.ExtendsContentIntoTitleBar = true; appWindow.TitleBar.ButtonBackgroundColor = Colors.Transparent; appWindow.TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; appWindow.TitleBar.ButtonForegroundColor = ThemeHelpers.GetAppTheme() == AppTheme.Light ? Colors.DarkSlateGray : Colors.White; diff --git a/src/modules/registrypreview/RegistryPreview/RegistryPreviewXAML/MainWindow.xaml.cs b/src/modules/registrypreview/RegistryPreview/RegistryPreviewXAML/MainWindow.xaml.cs index 4c0a3566e5..673e47590d 100644 --- a/src/modules/registrypreview/RegistryPreview/RegistryPreviewXAML/MainWindow.xaml.cs +++ b/src/modules/registrypreview/RegistryPreview/RegistryPreviewXAML/MainWindow.xaml.cs @@ -38,8 +38,8 @@ namespace RegistryPreview OpenWindowPlacementFile(settingsFolder, windowPlacementFile); // Update the Win32 looking window with the correct icon (and grab the appWindow handle for later) - IntPtr windowHandle = WinRT.Interop.WindowNative.GetWindowHandle(this); - Microsoft.UI.WindowId windowId = Win32Interop.GetWindowIdFromWindow(windowHandle); + IntPtr windowHandle = this.GetWindowHandle(); + WindowId windowId = Win32Interop.GetWindowIdFromWindow(windowHandle); appWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(windowId); appWindow.SetIcon("Assets\\RegistryPreview\\RegistryPreview.ico"); @@ -49,6 +49,7 @@ namespace RegistryPreview // Extend the canvas to include the title bar so the app can support theming ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(windowHandle); SetTitleBar(titleBar); // if have settings, update the location of the window diff --git a/src/settings-ui/Settings.UI/Helpers/StartProcessHelper.cs b/src/settings-ui/Settings.UI/Helpers/StartProcessHelper.cs index 70157075ac..ce172b2aa2 100644 --- a/src/settings-ui/Settings.UI/Helpers/StartProcessHelper.cs +++ b/src/settings-ui/Settings.UI/Helpers/StartProcessHelper.cs @@ -3,8 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Diagnostics; - -using Common.UI; +using ManagedCommon; namespace Microsoft.PowerToys.Settings.UI.Helpers { diff --git a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs index 85f64f62cc..3b6b3a7681 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs @@ -241,6 +241,10 @@ namespace Microsoft.PowerToys.Settings.UI // https://github.com/microsoft/microsoft-ui-xaml/issues/7595 - Activate doesn't bring window to the foreground // Need to call SetForegroundWindow to actually gain focus. WindowHelpers.BringToForeground(settingsWindow.GetWindowHandle()); + + // https://github.com/microsoft/microsoft-ui-xaml/issues/8948 - A window's top border incorrectly + // renders as black on Windows 10. + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(settingsWindow)); } else { @@ -255,6 +259,7 @@ namespace Microsoft.PowerToys.Settings.UI OobeWindow oobeWindow = new OobeWindow(OOBE.Enums.PowerToysModules.Overview); oobeWindow.Activate(); oobeWindow.ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(settingsWindow)); SetOobeWindow(oobeWindow); } else if (ShowScoobe) @@ -263,6 +268,7 @@ namespace Microsoft.PowerToys.Settings.UI OobeWindow scoobeWindow = new OobeWindow(OOBE.Enums.PowerToysModules.WhatsNew); scoobeWindow.Activate(); scoobeWindow.ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(settingsWindow)); SetOobeWindow(scoobeWindow); } else if (ShowFlyout) @@ -310,6 +316,7 @@ namespace Microsoft.PowerToys.Settings.UI // Window is also needed to show MessageDialog settingsWindow = new MainWindow(); settingsWindow.ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(settingsWindow)); settingsWindow.Activate(); settingsWindow.NavigateToSection(StartupPage); ShowMessageDialog("The application is running in Debug mode.", "DEBUG"); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs index 02df4de735..ef16dd46bd 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs @@ -6,12 +6,13 @@ using System; using System.Collections.ObjectModel; using System.Globalization; -using global::PowerToys.GPOWrapper; +using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.OOBE.Enums; using Microsoft.PowerToys.Settings.UI.OOBE.ViewModel; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using WinRT.Interop; namespace Microsoft.PowerToys.Settings.UI.OOBE.Views { @@ -306,6 +307,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views // A custom title bar is required for full window theme and Mica support. // https://docs.microsoft.com/windows/apps/develop/title-bar?tabs=winui3#full-customization u.ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(u)); u.SetTitleBar(AppTitleBar); } } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs index 9ff088b787..e416e7ae59 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs @@ -14,6 +14,7 @@ using Microsoft.UI.Xaml.Automation.Peers; using Microsoft.UI.Xaml.Controls; using Windows.Data.Json; using Windows.System; +using WinRT.Interop; namespace Microsoft.PowerToys.Settings.UI.Views { @@ -421,6 +422,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views // A custom title bar is required for full window theme and Mica support. // https://docs.microsoft.com/windows/apps/develop/title-bar?tabs=winui3#full-customization u.ExtendsContentIntoTitleBar = true; + WindowHelpers.ForceTopBorder1PixelInsetOnWindows10(WindowNative.GetWindowHandle(u)); u.SetTitleBar(AppTitleBar); var loader = ResourceLoaderInstance.ResourceLoader; AppTitleBarText.Text = App.IsElevated ? loader.GetString("SettingsWindow_AdminTitle") : loader.GetString("SettingsWindow_Title"); diff --git a/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs index a45c66a1ef..f8787f7634 100644 --- a/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs @@ -6,9 +6,8 @@ using System; using System.Globalization; using System.Runtime.CompilerServices; using System.Text.Json; - -using Common.UI; using global::PowerToys.GPOWrapper; +using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; diff --git a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs index 2b01dc3cec..50195b34ff 100644 --- a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs @@ -4,9 +4,8 @@ using System; using System.Runtime.CompilerServices; - -using Common.UI; using global::PowerToys.GPOWrapper; +using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; diff --git a/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs index 11e3d3ee46..73c8335e12 100644 --- a/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs @@ -10,8 +10,6 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using System.Windows; - -using Common.UI; using global::PowerToys.GPOWrapper; using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Helpers; diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs index 0fe65516ca..e64db72614 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs @@ -9,9 +9,8 @@ using System.Globalization; using System.Linq; using System.Text.Json; using System.Timers; - -using Common.UI; using global::PowerToys.GPOWrapper; +using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces;