Как имитировать нажатие клавиши Tab при нажатии Return в приложении WPF?

В приложении WPF у меня есть окно с большим количеством полей. Когда пользователь использует клавишу TAB после заполнения каждого поля, окна понимают, что он переходит к следующему. Это довольно знакомое поведение.

Теперь я хочу, чтобы он имитировал ключ TAB, когда на самом деле RETURN попадает. Итак, в моем WPF-xaml я добавил, что KeyDown="userPressEnter"

И в коде позади него:

private void userPressEnter(object sender, KeyEventArgs e)
{
  if (e.Key == Key.Return)
  {
    e.Key = Key.Tab // THIS IS NOT WORKING
  }
}

Теперь, очевидно, это не работает. Но я не знаю, как я делаю эту работу?


РЕДАКТИРОВАТЬ 1 == > НАЙДЕННОЕ РЕШЕНИЕ

Я нашел кое-что, что помогло мне =)

private void userPressEnter(object sender, KeyEventArgs e)
{
 if (e.Key == Key.Return)
 {
   TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
   MoveFocus(request);
 }
}

Таким образом, Фокус перемещается по следующему, который он может найти:)

Ответы

Ответ 2

    protected override bool ProcessDialogKey(Keys keyData)
    {
        System.Diagnostics.Debug.WriteLine(keyData.ToString());

        switch (keyData)
        {
            case Keys.Enter:
                SendKeys.Send("{TAB}");
                break;
        }
        base.ProcessDialogKey(keyData);
        return false;
    }

Ответ 4

Использовать метод SelectNextControl вашей формы