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