Uday Manvar Ответов: 1

Переход к следующему элементу управления при нажатии клавиши enter в WPF


Я хочу общее решение для всех форм, когда я нажимаю клавишу ввода на любом элементе управления, курсор должен быть перемещен на следующий фокусируемый элемент управления, например tab. Я не хочу писать событие keydown для всех кодов

Что я уже пробовал:

Я пробовал писать один Keydown и назначать всем окнам или UserControl

public void FrameworkElement_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            var _FrameworkElement = e.OriginalSource as FrameworkElement;
            if (e.Key == Key.Enter)
            {
                if(e.OriginalSource is Button) return;
                _FrameworkElement.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }
        }

1 Ответов

Рейтинг:
2

Graeme_Grant

Это не естественное движение для приложения Windows. Обычно это клавиша TAB.

Однако, чтобы найти вам решение, я сделал быстрый поиск в Google: wpf change tab key to enter key - поиск в Google[^] и обнаружил следующее EnterKeyTraversal решение с использованием прикрепленного поведения: ввод с клавиатуры - интерпретация enter как tab WPF - переполнение стека[^]