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