【发布时间】:2014-01-09 23:19:54
【问题描述】:
我有一个 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()应该为你做。 -
window.Focus()每次都返回 false。 -
window.Focus()返回一个布尔值,标识该窗口是否具有焦点。我的猜测是当你调用Focus()时你的窗口没有焦点,所以它总是错误的.. 给你的窗口焦点,使用window.Focus() = true;