Beispiel #1
0
        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;
                    }
                }
            }
        }
Beispiel #2
0
        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;
     }
 }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
 private void OnKeyDown(object sender, KeyEventArgs e)
 {
     lock (_lockObject)
     {
         foreach (var commandGesture in _commandGestures)
         {
             if (commandGesture.Value.Matches(e))
             {
                 ExecuteCommand(commandGesture.Key);
             }
         }
     }
 }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        /// <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;
        }
Beispiel #8
0
        /// <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;
                }
            }
        }
Beispiel #9
0
        /// <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;
        }
Beispiel #10
0
        /// <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;
            }
        }
Beispiel #11
0
 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)");
 }
        /// <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;
                }
            }
        }
Beispiel #13
0
 private void OnKeyDown(object sender, KeyEventArgs e)
 {
     lock (_lockObject)
     {
         foreach (var commandGesture in _commandGestures)
         {
             if (commandGesture.Value.Matches(e))
             {
                 ExecuteCommand(commandGesture.Key);
             }
         }
     }
 }
Beispiel #14
0
        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 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;
                }
            }
        }