Browse Source

步骤设置页面数字输入键盘完善

master
sc 2 months ago
parent
commit
f7e051baec
  1. 3
      KEY/TouchKeyboardNumeral.xaml
  2. 11
      KEY/TouchKeyboardNumeral.xaml.cs
  3. 12
      Windows/ViewStep.xaml.cs

3
KEY/TouchKeyboardNumeral.xaml

@ -36,6 +36,9 @@
<Trigger Property="IsPressed" Value="True"> <Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFDDDDDD"/> <Setter Property="Background" Value="#FFDDDDDD"/>
</Trigger> </Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="#FFBBBBBB"/>
</Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>

11
KEY/TouchKeyboardNumeral.xaml.cs

@ -21,6 +21,7 @@ namespace DyeingComputer.KEY
{ {
private bool isShiftActive = false; private bool isShiftActive = false;
private bool isSymbolActive = false; private bool isSymbolActive = false;
private bool mode = false;
public string KeyValue; public string KeyValue;
public event EventHandler<KeyPressedEventArgs> KeyPressed; public event EventHandler<KeyPressedEventArgs> KeyPressed;
private KeyboardMode currentMode = KeyboardMode.Default; private KeyboardMode currentMode = KeyboardMode.Default;
@ -69,6 +70,7 @@ namespace DyeingComputer.KEY
{ {
SetButtonEnabled(i.ToString(), i >= minValue && i <= maxValue); SetButtonEnabled(i.ToString(), i >= minValue && i <= maxValue);
} }
mode = true;
break; break;
case KeyboardMode.Default: case KeyboardMode.Default:
@ -130,6 +132,7 @@ namespace DyeingComputer.KEY
// 数字键点击事件 // 数字键点击事件
private void KeyButton_Click(object sender, RoutedEventArgs e) private void KeyButton_Click(object sender, RoutedEventArgs e)
{ {
if (mode && PreviewTextBox.Text.Length > 0) return;
Button button = sender as Button; Button button = sender as Button;
if (button != null && button.IsEnabled) if (button != null && button.IsEnabled)
{ {
@ -137,7 +140,7 @@ namespace DyeingComputer.KEY
PreviewTextBox.Text += keyValue; PreviewTextBox.Text += keyValue;
// 触发按键事件 // 触发按键事件
// KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Character, keyValue)); // KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Character, keyValue));
} }
} }
@ -166,7 +169,7 @@ namespace DyeingComputer.KEY
// 隐藏键点击事件 // 隐藏键点击事件
private void Hide_Click(object sender, RoutedEventArgs e) private void Hide_Click(object sender, RoutedEventArgs e)
{ {
// KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Hide, "")); KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Hide, ""));
// 隐藏键盘 // 隐藏键盘
this.Hide(); this.Hide();
} }
@ -185,8 +188,9 @@ namespace DyeingComputer.KEY
private void Window_Loaded(object sender, RoutedEventArgs e) private void Window_Loaded(object sender, RoutedEventArgs e)
{ {
// 初始化为默认模式 // 初始化为默认模式
SetKeyboardMode(KeyboardMode.Default); // SetKeyboardMode(KeyboardMode.Default);
PreviewTextBox.Text = null; PreviewTextBox.Text = null;
mode = false;
} }
} }
// 按键类型枚举 // 按键类型枚举
@ -203,7 +207,6 @@ namespace DyeingComputer.KEY
{ {
public KeyType KeyType { get; } public KeyType KeyType { get; }
public string KeyValue { get; } public string KeyValue { get; }
public string DATValue { set; get; }
public KeyPressedEventArgs(KeyType keyType, string keyValue) public KeyPressedEventArgs(KeyType keyType, string keyValue)
{ {

12
Windows/ViewStep.xaml.cs

@ -2225,11 +2225,9 @@ namespace DyeingComputer.Windows
// 键盘按键事件处理 // 键盘按键事件处理
private void NumeralKeyboard_KeyPressed(object sender, TouchKeyboardNumeral.KeyPressedEventArgs e) private void NumeralKeyboard_KeyPressed(object sender, TouchKeyboardNumeral.KeyPressedEventArgs e)
{ {
if (String.IsNullOrEmpty(e.KeyValue)) return;
switch (e.KeyType) switch (e.KeyType)
{ {
case KeyType.Character: /* case KeyType.Character:
currentTextBox.Text += e.KeyValue; currentTextBox.Text += e.KeyValue;
break; break;
case KeyType.Backspace: case KeyType.Backspace:
@ -2237,13 +2235,17 @@ namespace DyeingComputer.Windows
{ {
currentTextBox.Text = currentTextBox.Text.Substring(0, currentTextBox.Text.Length - 1); currentTextBox.Text = currentTextBox.Text.Substring(0, currentTextBox.Text.Length - 1);
} }
break; break;*/
case KeyType.Enter: case KeyType.Enter:
// 回车键处理 // 回车键处理
currentTextBox.Text = e.KeyValue; if (!String.IsNullOrEmpty(e.KeyValue)) currentTextBox.Text = e.KeyValue;
numeralKeyboard.Close();
boxID.Focus();
break; break;
case KeyType.Hide: case KeyType.Hide:
// 隐藏键盘处理 // 隐藏键盘处理
numeralKeyboard.Close();
boxID.Focus();
break; break;
} }

Loading…
Cancel
Save