我有一个WPF应用程序,它通过套接字连接与C++ MFC应用程序通信。如果用户在C++应用程序中按下特定按钮,则会显示一个新的WPF窗口。
以下是调用启动WPF窗口的代码:
var window = new Window();
window.Topmost = true;
window.Show();
window.Activate();
window.Topmost = false;
在某些机器上,以这种方式显示的第一个窗口(仅限第一个窗口)将不会有键盘焦点。它将位于C++应用程序的前面,但C++应用程序仍将具有键盘焦点。是否有其他方法可以强制WPF窗口每次都获取键盘焦点?
window.Focus()
应该可以解决你的问题。 - evanmcdonnalwindow.Focus()
都会返回 false。 - battmanzwindow.Focus()
returns a boolean value identifying whether or not that window has the focus. My guess is that your window doesnt have focus when you callFocus()
, so it will always be false.. to give your window focus, usewindow.Focus() = true;
- Pseudo Sudo