Как переключить фокус между моим приложением WPF и вторым окном - PullRequest
0 голосов
/ 27 мая 2020

У меня есть приложение WPF, которое используется для некоторых целей захвата элементов. Поэтому действительно важно переключать фокус между приложениями. Приложение работает таким образом, что всякий раз, когда я нажимаю Ctrl KeyDown, сфокусированный элемент захватывает и отображает его в моем окне WPF. Теперь проблема в том, что если я нажимаю на приложение WPF, фокус не переключается на какое-либо другое окно, пока я не щелкну другое окно. На самом деле мне нужно сосредоточиться на следующем окне за моим окном WPF всякий раз, когда я перемещаю курсор мыши из своего окна. Как я могу реализовать этот конкретный сценарий.

Я знаю user32, который мы можем использовать для переключения фокуса, но как я найду следующее окно или второе окно и буду переключать фокус всякий раз, когда перемещаю курсор из моего приложения WPF ( в настоящее время он находится в фокусе).

1 Ответ

0 голосов
/ 28 мая 2020

Если вы действительно хотите, чтобы окно вашего приложения получило фокус, когда пользователь наводит указатель мыши на окно вашего приложения, вы можете сделать это, установив обработчик события MouseEnter в каждом окне вашего приложения, который вы хотите получить фокус, когда курсор мыши перемещается по нему:

  public YourWindow() : base()
  {

     // Other constructor code

     this.MouseEnter += this.windowMouseEnter;
  }

  private void windowMouseEnter(object sender, MouseEventArgs e)
  {
     if (!e.Handled) this.Focus();
  }
...