public void HandleKeyDown(System.Windows.Controls.ContentControl sender, DependencyLogicalKey virtualKeyConfig, Dictionary <ContentControl, DependencyLogicalKey> virtualKeys) { var virtualKey = QuertyKeyboard.GetVirtualKey(sender) as VirtualKey; var userDefineKey = QuertyKeyboard.GetVirtualKey(sender) as UserDefinedKey; var isShiftVirtualKey = GetIsShiftVirtualKey(virtualKey); if (userDefineKey != null) { foreach (var kvp in _shiftKeys) { foreach (var control in _shiftKeys[kvp.Key]) { if (control is System.Windows.Controls.CheckBox) { var checkBox = control as System.Windows.Controls.CheckBox; checkBox.IsChecked = false; } else if (control is System.Windows.Controls.Primitives.ToggleButton) { var toggleButton = control as System.Windows.Controls.Primitives.ToggleButton; toggleButton.IsChecked = false; } } } } if (isShiftVirtualKey || virtualKey == null) { return; } foreach (var kvp in _shiftKeys) { foreach (var control in _shiftKeys[kvp.Key]) { var isKeyDown = virtualKey.KeyboardService.IsKeyDownAsync(kvp.Key); if (control is System.Windows.Controls.CheckBox) { var checkBox = control as System.Windows.Controls.CheckBox; checkBox.IsChecked = isKeyDown; } else if (control is System.Windows.Controls.Primitives.ToggleButton) { var toggleButton = control as System.Windows.Controls.Primitives.ToggleButton; toggleButton.IsChecked = isKeyDown; } } } }
public void RegisterKey(System.Windows.Controls.ContentControl sender) { var instantaneousModifierKey = QuertyKeyboard.GetVirtualKey(sender) as InstantaneousModifierKey; var isShiftVirtualKey = GetIsShiftVirtualKey(instantaneousModifierKey); if (!isShiftVirtualKey) { return; } if (!_shiftKeys.ContainsKey(instantaneousModifierKey.KeyCode)) { _shiftKeys[instantaneousModifierKey.KeyCode] = new List <ContentControl>(); } _shiftKeys[instantaneousModifierKey.KeyCode].Add(sender); }
public void HandleUserDefinedKey(QuertyKeyboard sender, DependencyLogicalKey virtualKeyConfig, IKeyboardInput keyboardService) { //var currentLayout = (QuertyKeyboard)sender.KeyboardLayout; var keyName = (virtualKeyConfig as UserDefinedKey).Id.ToString(); switch (keyName) { case @"KBEXPAND": sender.KeyboardLayout = DefaultKeyboardLayout.SplittedKeyboard; break; case @"KBCOMPACT": sender.KeyboardLayout = DefaultKeyboardLayout.StandardKeyboard; break; case @"KBNUMERIC": sender.KeyboardLayout = DefaultKeyboardLayout.NumericKeyboard; break; default: break; } }