From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 HMI.UI/Controls/KeyboradWindow.xaml.cs |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/HMI.UI/Controls/KeyboradWindow.xaml.cs b/HMI.UI/Controls/KeyboradWindow.xaml.cs
new file mode 100644
index 0000000..00e929a
--- /dev/null
+++ b/HMI.UI/Controls/KeyboradWindow.xaml.cs
@@ -0,0 +1,110 @@
+锘縰sing Panuon.WPF.UI;
+using System;
+using System.ComponentModel;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+
+namespace HMI.UI
+{
+    public partial class KeyboardWindow : WindowX
+    {
+        private bool _isCapsLockOn = false;
+
+        public bool IsCapsLockOn
+        {
+            get => _isCapsLockOn;
+            set
+            {
+                Set(ref _isCapsLockOn, value);
+            }
+        }
+
+        public KeyboardWindow()
+        {
+            DataContext = this;
+            InitializeComponent();
+        }
+
+        public bool? Open(string data)
+        {
+            Data = data;
+            inputTextBox.Text = data;
+            return this.ShowDialog();
+        }
+
+        public string Data { get; private set; }
+
+        private void KeyButton_Click(object sender, RoutedEventArgs e)
+        {
+            if (sender is Button button)
+            {
+                string key = button.Content.ToString();
+                if (_isCapsLockOn && IsLetter(key))
+                {
+                    key = key.ToUpper();
+                }
+                else
+                {
+                    key = key.ToLower();
+                }
+                InsertText(key);
+            }
+        }
+
+        private bool IsLetter(string key)
+        {
+            return key.Length == 1 && char.IsLetter(key[0]);
+        }
+
+        private void InsertText(string text)
+        {
+            inputTextBox.Text += text;
+            inputTextBox.Focus();
+        }
+
+        private void BackspaceButton_Click(object sender, RoutedEventArgs e)
+        {
+            if (inputTextBox.Text.Length > 0)
+            {
+                inputTextBox.Text = inputTextBox.Text.Substring(0, inputTextBox.Text.Length - 1);
+            }
+            inputTextBox.Focus();
+        }
+
+        private void ClearButton_Click(object sender, RoutedEventArgs e)
+        {
+            inputTextBox.Clear();
+            inputTextBox.Focus();
+        }
+
+        private void EnterButton_Click(object sender, RoutedEventArgs e)
+        {
+            //InsertText(Environment.NewLine);
+        }
+
+        private void SpaceButton_Click(object sender, RoutedEventArgs e)
+        {
+            InsertText(" ");
+        }
+
+        private void CapsButton_Click(object sender, RoutedEventArgs e)
+        {
+            IsCapsLockOn = !IsCapsLockOn;
+        }
+
+        private void Cancel_Click(object sender, RoutedEventArgs e)
+        {
+            Data = string.Empty;
+            DialogResult = false;
+            this.Close();
+        }
+
+        private void Ok_Click(object sender, RoutedEventArgs e)
+        {
+            Data = inputTextBox.Text;
+            DialogResult = true;
+            this.Close();
+        }
+    }
+}

--
Gitblit v1.9.1