protected void OnSendKey(KeyboardKey letter, bool backspace = false) { if (SendKey != null) { if (!backspace) { if (!shiftKey) { SendKey(letter.DefaultValue); } else { SendKey(letter.ShiftValue); } } else { if (CurrentlySelected != null) { if (CurrentlySelected.Text.Length - 1 >= 0) { CurrentlySelected.Text = CurrentlySelected.Text.Remove(CurrentlySelected.Text.Length - 1, 1); } } } } if (shiftKey && !capsKey) { shiftKey = false; } }
private void B_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Debug.WriteLine(((Button)sender).Content); FrameworkElement letter = (FrameworkElement)((Button)sender); KeyboardKey key = lines[(int)letter.GetValue(Grid.RowProperty)][(int)letter.GetValue(Grid.ColumnProperty)]; if (key.IsCapsKey) { capsKey = !capsKey; if (capsKey) { shiftKey = true; } else { shiftKey = false; } } else if (key.IsShiftKey) { shiftKey = !shiftKey; capsKey = false; } else { OnSendKey(key, key.IsBackspace); } RefreshKeyboard(); }