private void OnKeyDown(object sender, KeyEventArgs e) { if (_commandManager.IsKeyboardEventsSuspended) { return; } if (e.Handled) { // Don't get in the way of already handled KeyDown events return; } // TODO: consider caching or something like that var commandNames = _commandManager.GetCommands(); foreach (var commandName in commandNames) { var inputGesture = _commandManager.GetInputGesture(commandName); if (inputGesture != null) { if (inputGesture.Matches(e)) { e.Handled = true; _commandManager.ExecuteCommand(commandName); break; } } } }
private void OnKeyDown(object sender, KeyEventArgs e) { lock (_lockObject) { bool keyHandled = false; foreach (var commandGesture in _commandGestures) { var keyGesture = commandGesture.Value; if (keyGesture != null) { if (keyGesture.Matches(e)) { ExecuteCommand(commandGesture.Key); keyHandled = true; } } } if (keyHandled) { e.Handled = true; } } }
private void AssociatedTextBox_KeyUp(object sender, global::Windows.UI.Xaml.Input.KeyRoutedEventArgs e) { if (e.Key == global::Windows.System.VirtualKey.Enter) { Interaction.ExecuteActions(AssociatedObject, this.Actions, null); e.Handled = true; } }
/// <summary> /// Gets the Key to a string value. /// </summary> /// <param name="e">The key event args instance containing the event data.</param> /// <returns></returns> private string GetKeyValue(UIKeyEventArgs e) { string keyValue = string.Empty; #if NET if (e.Key == Key.Decimal) { keyValue = GetDecimalSeparator(); } else if (e.Key == Key.OemMinus || e.Key == Key.Subtract) { keyValue = MinusCharacter; } else if (e.Key == Key.OemComma) { keyValue = CommaCharacter; } else if (e.Key == Key.OemPeriod) { keyValue = PeriodCharacter; } #elif NETFX_CORE if (e.VirtualKey == Key.Subtract) { keyValue = MinusCharacter; } //else if (e.VirtualKey == Key.) //{ // keyValue = CommaCharacter; //} //else if (e.VirtualKey == Key.Pe) //{ // keyValue = PeriodCharacter; //} #else if (e.PlatformKeyCode == 190 || e.PlatformKeyCode == 110) { keyValue = PeriodCharacter; } else if (e.PlatformKeyCode == 188) { keyValue = CommaCharacter; } else if (e.PlatformKeyCode == 189) { keyValue = MinusCharacter; } else { keyValue = e.Key.ToString().Replace("D", string.Empty).Replace("NumPad", string.Empty); } #endif return(keyValue); }
private void OnKeyDown(object sender, KeyEventArgs e) { lock (_lockObject) { foreach (var commandGesture in _commandGestures) { if (commandGesture.Value.Matches(e)) { ExecuteCommand(commandGesture.Key); } } } }
/// <summary> /// Checks whether this input gesture matches the specified event args. /// </summary> /// <param name="eventArgs">The <see cref="KeyEventArgs"/> instance containing the event data.</param> /// <returns><c>true</c> if this gesture matches the event args, <c>false</c> otherwise.</returns> public bool Matches(KeyEventArgs eventArgs) { if (eventArgs == null) { return(false); } if (eventArgs.Key != Key) { return(false); } if (!KeyboardHelper.AreKeyboardModifiersPressed(Modifiers)) { return(false); } return(true); }
/// <summary> /// Checks whether this input gesture matches the specified event args. /// </summary> /// <param name="eventArgs">The <see cref="KeyEventArgs"/> instance containing the event data.</param> /// <returns><c>true</c> if this gesture matches the event args, <c>false</c> otherwise.</returns> public bool Matches(KeyEventArgs eventArgs) { if (eventArgs == null) { return false; } if (eventArgs.Key != Key) { return false; } if (!KeyboardHelper.AreKeyboardModifiersPressed(Modifiers)) { return false; } return true; }
/// <summary> /// Called when the specified key is pressed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The key event args instance containing the event data.</param> private void OnKeyDown(object sender, KeyDownEventArgs e) { if (!IsEnabled) { return; } if (e.Handled) { return; } if (KeyboardHelper.AreKeyboardModifiersPressed(Modifiers)) { if (e.Key == Key) { StartFocus(); e.Handled = true; } } }
/// <summary> /// Called when the <see cref="UIElement.KeyDown"/> occurs. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="KeyEventArgs"/> instance containing the event data.</param> private void OnAssociatedObjectKeyDown(object sender, UIKeyEventArgs e) { bool notAllowed = true; string keyValue = GetKeyValue(e); var numberDecimalSeparator = GetDecimalSeparator(); if (keyValue == numberDecimalSeparator && IsDecimalAllowed) { notAllowed = AssociatedObject.Text.Contains(numberDecimalSeparator); } else if (keyValue == MinusCharacter && IsNegativeAllowed) { notAllowed = ((TextBox)sender).CaretIndex > 0; } else if (AllowedKeys.Contains(e.Key) || IsDigit(e.Key)) { notAllowed = (e.Key == Key.OemMinus && ((TextBox)sender).CaretIndex > 0 && IsNegativeAllowed); } e.Handled = notAllowed; }
/// <summary> /// Filters invalid keys. /// </summary> protected override void OnBeforeKeyDown(global::Windows.UI.Xaml.Input.KeyRoutedEventArgs args) { // Call base class method to process cursor keys, do nothing more when handled base.OnBeforeKeyDown(args); if (args.Handled) { return; } var key = (KeyboardKey)args.Key; // Allow minus to switch sign when signed if ((key == KeyboardKey.NumberPadSubtract || key == KeyboardKey.Minus) && NumberSigned) { Negate(); args.Handled = true; return; } // Filter keys according to current number settings if (!IsKeyValidNumber(key, (int)NumberBase)) { args.Handled = true; } }
protected virtual void OnPreviewKeyUp(global::Windows.UI.Xaml.Input.KeyRoutedEventArgs e) { global::Windows.Foundation.Metadata.ApiInformation.TryRaiseNotImplemented("Windows.UI.Xaml.Controls.Control", "void Control.OnPreviewKeyUp(KeyRoutedEventArgs e)"); }
private void OnKeyDown(object sender, KeyEventArgs e) { if (e.Handled) { // Don't get in the way of already handled KeyDown events return; } // TODO: consider caching or something like that var commandNames = _commandManager.GetCommands(); foreach (var commandName in commandNames) { bool keyHandled = false; var inputGesture = _commandManager.GetInputGesture(commandName); if (inputGesture != null) { if (inputGesture.Matches(e)) { keyHandled = true; _commandManager.ExecuteCommand(commandName); break; } } if (keyHandled) { e.Handled = true; } } }