From d0608db26d7f26ab9e801ec550940f5fcd816748 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Wed, 18 Feb 2026 15:36:20 +0100 Subject: [PATCH] Cleaning up XAML --- .../{IconLabel => }/IconLabelControl.xaml | 0 ...belControl.cs => IconLabelControl.xaml.cs} | 0 .../Controls/KeyVisual/KeyCharPresenter.xaml | 107 --------- .../KeyVisual/KeyCharPresenter.xaml.cs | 32 --- .../Controls/KeyVisual/KeyVisual.xaml | 213 ------------------ .../Controls/KeyVisual/KeyVisual.xaml.cs | 195 ---------------- .../Controls/UnifiedMappingControl.xaml | 8 +- .../KeyboardManagerEditorUI.csproj | 1 + .../KeyboardManagerEditorXAML/App.xaml | 4 +- .../KeyboardManagerEditorXAML/MainWindow.xaml | 2 +- .../Pages/{All.xaml => MainPage.xaml} | 23 +- .../Pages/{All.xaml.cs => MainPage.xaml.cs} | 6 +- 12 files changed, 23 insertions(+), 568 deletions(-) rename src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/{IconLabel => }/IconLabelControl.xaml (100%) rename src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/{IconLabel/IconLabelControl.cs => IconLabelControl.xaml.cs} (100%) delete mode 100644 src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml delete mode 100644 src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml.cs delete mode 100644 src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml delete mode 100644 src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml.cs rename src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/{All.xaml => MainPage.xaml} (96%) rename src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/{All.xaml.cs => MainPage.xaml.cs} (99%) diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabel/IconLabelControl.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabelControl.xaml similarity index 100% rename from src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabel/IconLabelControl.xaml rename to src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabelControl.xaml diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabel/IconLabelControl.cs b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabelControl.xaml.cs similarity index 100% rename from src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabel/IconLabelControl.cs rename to src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/IconLabelControl.xaml.cs diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml deleted file mode 100644 index 3e547c6d65..0000000000 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml.cs b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml.cs deleted file mode 100644 index 0457e715ee..0000000000 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyCharPresenter.xaml.cs +++ /dev/null @@ -1,32 +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 System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Data; -using Microsoft.UI.Xaml.Documents; -using Microsoft.UI.Xaml.Input; -using Microsoft.UI.Xaml.Media; - -namespace KeyboardManagerEditorUI.Controls; - -public sealed partial class KeyCharPresenter : Control -{ - public KeyCharPresenter() - { - DefaultStyleKey = typeof(KeyCharPresenter); - } - - public object Content - { - get => (object)GetValue(ContentProperty); - set => SetValue(ContentProperty, value); - } - - public static readonly DependencyProperty ContentProperty = DependencyProperty.Register(nameof(Content), typeof(object), typeof(KeyCharPresenter), new PropertyMetadata(default(string))); -} diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml deleted file mode 100644 index e0f04391c7..0000000000 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml.cs b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml.cs deleted file mode 100644 index a0ed4b0306..0000000000 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/KeyVisual/KeyVisual.xaml.cs +++ /dev/null @@ -1,195 +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 Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Windows.System; - -namespace KeyboardManagerEditorUI.Controls -{ - [TemplatePart(Name = KeyPresenter, Type = typeof(KeyCharPresenter))] - [TemplateVisualState(Name = NormalState, GroupName = "CommonStates")] - [TemplateVisualState(Name = DisabledState, GroupName = "CommonStates")] - [TemplateVisualState(Name = InvalidState, GroupName = "CommonStates")] - [TemplateVisualState(Name = WarningState, GroupName = "CommonStates")] - public sealed partial class KeyVisual : Control - { - private const string KeyPresenter = "KeyPresenter"; - private const string NormalState = "Normal"; - private const string DisabledState = "Disabled"; - private const string InvalidState = "Invalid"; - private const string WarningState = "Warning"; - private KeyCharPresenter _keyPresenter; - - public object Content - { - get => (object)GetValue(ContentProperty); - set => SetValue(ContentProperty, value); - } - - public static readonly DependencyProperty ContentProperty = DependencyProperty.Register(nameof(Content), typeof(object), typeof(KeyVisual), new PropertyMetadata(default(string), OnContentChanged)); - - public State State - { - get => (State)GetValue(StateProperty); - set => SetValue(StateProperty, value); - } - - public static readonly DependencyProperty StateProperty = DependencyProperty.Register(nameof(State), typeof(State), typeof(KeyVisual), new PropertyMetadata(State.Normal, OnStateChanged)); - - public bool RenderKeyAsGlyph - { - get => (bool)GetValue(RenderKeyAsGlyphProperty); - set => SetValue(RenderKeyAsGlyphProperty, value); - } - - public static readonly DependencyProperty RenderKeyAsGlyphProperty = DependencyProperty.Register(nameof(RenderKeyAsGlyph), typeof(bool), typeof(KeyVisual), new PropertyMetadata(false, OnContentChanged)); - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. - public KeyVisual() -#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. - { - this.DefaultStyleKey = typeof(KeyVisual); - } - - protected override void OnApplyTemplate() - { - IsEnabledChanged -= KeyVisual_IsEnabledChanged; - _keyPresenter = (KeyCharPresenter)this.GetTemplateChild(KeyPresenter); - Update(); - SetVisualStates(); - IsEnabledChanged += KeyVisual_IsEnabledChanged; - base.OnApplyTemplate(); - } - - private static void OnContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - ((KeyVisual)d).SetVisualStates(); - } - - private static void OnStateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - ((KeyVisual)d).SetVisualStates(); - } - - private void SetVisualStates() - { - if (this != null) - { - if (State == State.Error) - { - VisualStateManager.GoToState(this, InvalidState, true); - } - else if (State == State.Warning) - { - VisualStateManager.GoToState(this, WarningState, true); - } - else if (!IsEnabled) - { - VisualStateManager.GoToState(this, DisabledState, true); - } - else - { - VisualStateManager.GoToState(this, NormalState, true); - } - } - } - - private void Update() - { - if (Content == null) - { - return; - } - - if (Content is string key) - { - switch (key) - { - case "Copilot": - _keyPresenter.Style = (Style)Application.Current.Resources["CopilotKeyCharPresenterStyle"]; - break; - - case "Office": - _keyPresenter.Style = (Style)Application.Current.Resources["OfficeKeyCharPresenterStyle"]; - break; - - default: - _keyPresenter.Style = (Style)Application.Current.Resources["DefaultKeyCharPresenterStyle"]; - break; - } - - return; - } - - if (Content is int keyCode) - { - VirtualKey virtualKey = (VirtualKey)keyCode; - switch (virtualKey) - { - case VirtualKey.Enter: - SetGlyphOrText("\uE751", virtualKey); - break; - - case VirtualKey.Back: - SetGlyphOrText("\uE750", virtualKey); - break; - - case VirtualKey.Shift: - case (VirtualKey)160: // Left Shift - case (VirtualKey)161: // Right Shift - SetGlyphOrText("\uE752", virtualKey); - break; - - case VirtualKey.Up: - _keyPresenter.Content = "\uE0E4"; - break; - - case VirtualKey.Down: - _keyPresenter.Content = "\uE0E5"; - break; - - case VirtualKey.Left: - _keyPresenter.Content = "\uE0E2"; - break; - - case VirtualKey.Right: - _keyPresenter.Content = "\uE0E3"; - break; - - case VirtualKey.LeftWindows: - case VirtualKey.RightWindows: - _keyPresenter.Style = (Style)Application.Current.Resources["WindowsKeyCharPresenterStyle"]; - break; - } - } - } - - private void SetGlyphOrText(string glyph, VirtualKey key) - { - if (RenderKeyAsGlyph) - { - _keyPresenter.Content = glyph; - _keyPresenter.Style = (Style)Application.Current.Resources["GlyphKeyCharPresenterStyle"]; - } - else - { - _keyPresenter.Content = key.ToString(); - _keyPresenter.Style = (Style)Application.Current.Resources["DefaultKeyCharPresenterStyle"]; - } - } - - private void KeyVisual_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e) - { - SetVisualStates(); - } - } - - public enum State - { - Normal, - Error, - Warning, - } -} diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/UnifiedMappingControl.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/UnifiedMappingControl.xaml index e3842618ce..579d28b453 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/UnifiedMappingControl.xaml +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Controls/UnifiedMappingControl.xaml @@ -1,11 +1,11 @@ - + - - + diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/App.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/App.xaml index 1e1537351b..f9524481e4 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/App.xaml +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/App.xaml @@ -8,8 +8,8 @@ - - + + diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/MainWindow.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/MainWindow.xaml index d4e02233bb..a8c8c6455c 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/MainWindow.xaml +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/KeyboardManagerEditorXAML/MainWindow.xaml @@ -35,7 +35,7 @@ - diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml similarity index 96% rename from src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml rename to src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml index 984454e639..1b1669cd2c 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml @@ -1,11 +1,12 @@ + TargetType="kbmcontrols:IconLabelControl"> @@ -155,7 +156,7 @@ VerticalAlignment="Center" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="in" /> - + - @@ -243,7 +244,7 @@ VerticalAlignment="Center" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="in" /> - + - @@ -333,7 +334,7 @@ VerticalAlignment="Center" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="in" /> - + --> - @@ -422,7 +423,7 @@ VerticalAlignment="Center" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="in" /> - + --> - + diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml.cs similarity index 99% rename from src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs rename to src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml.cs index 53b1b3d73d..6659bb1f75 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/All.xaml.cs +++ b/src/modules/keyboardmanager/KeyboardManagerEditorUI/Pages/MainPage.xaml.cs @@ -24,7 +24,7 @@ namespace KeyboardManagerEditorUI.Pages /// A consolidated page that displays all mappings from Remappings, Text, Programs, and URLs pages. /// #pragma warning disable SA1124 // Do not use regions - public sealed partial class All : Page, IDisposable + public sealed partial class MainPage : Page, IDisposable { private KeyboardMappingService? _mappingService; private bool _disposed; @@ -68,7 +68,7 @@ namespace KeyboardManagerEditorUI.Pages public bool IsAllApps { get; set; } = true; } - public All() + public MainPage() { this.InitializeComponent(); @@ -79,7 +79,7 @@ namespace KeyboardManagerEditorUI.Pages } catch (Exception ex) { - Logger.LogError("Failed to initialize KeyboardMappingService in All page: " + ex.Message); + Logger.LogError("Failed to initialize KeyboardMappingService in MainPage page: " + ex.Message); } this.Unloaded += All_Unloaded;