using 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();
|
}
|
}
|
}
|