Как оставить WPF UserControl где-нибудь внутри UserControl? - PullRequest
0 голосов
/ 10 ноября 2018

Я делаю UC (UserControl) в WPF. У меня есть несколько текстовых полей в UC. Я хочу покинуть UC, когда пользователь нажал кнопку возврата на одном из них. Я хочу, чтобы клавиша возврата работала как клавиша Tab в главном окне. Как я могу это реализовать?

1 Ответ

0 голосов
/ 11 ноября 2018

Я нашел этот пост в моих поисках, и это был ответ на мою проблему.

Идея состоит в том, чтобы иметь класс с именем SendKeys * и использовать его метод в событии управления ключом вниз.

public static class SendKeys
  {
    /// <summary>
    ///   Sends the specified key.
    /// </summary>
    /// <param name="key">The key.</param>
    public static void Send(Key key)
    {
      if (Keyboard.PrimaryDevice != null)
      {
        if (Keyboard.PrimaryDevice.ActiveSource != null)
        {
          var e1 = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, key) {RoutedEvent = Keyboard.KeyDownEvent};
          InputManager.Current.ProcessInput(e1);
        }
      }
    }
  }

Тогда используйте это так:

private void textBoxesKeyDown(object sender, KeyEventArgs e) {
            switch (e.Key)
            {
                case Key.Return:
                    SendKeys.Send(Key.Tab);
                    break;
            }
 }

* Примечание: SendKeys - это класс в WinForm, которого нет в WPF. Кстати, вы можете реализовать с помощью этих кодов.

...