c# - 强制窗口在打开时获得焦点

标签 c# wpf windows

我有一个 WPF 应用程序,它通过套接字连接与 C++ MFC 应用程序通信。如果用户按下 C++ 应用程序中的特定按钮,则会显示一个新的 WPF 窗口。

下面是调用以启动 WPF 窗口的代码:

var window = new Window();
window.Topmost = true;
window.Show();
window.Activate();
window.Topmost = false;

在某些机器上,以这种方式显示的第一个窗口(并且只有第一个窗口)不会有键盘焦点。它将位于 C++ 应用程序的前面,但 C++ 应用程序仍将具有键盘焦点。我还能做些什么来强制 WPF 窗口每次都获得键盘焦点吗?

最佳答案

试试这个:

var window = new Window();    
window.Show();
window.Activate();
window.Focus();
window.Topmost = true;
window.Topmost = false;

关于c# - 强制窗口在打开时获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033262/

相关文章:

C#泛型,我做错了什么?

c# - 有什么理由在接口(interface)中声明可选参数吗?

c# - WPF 可重用 Style.Triggers

c# - 如何检测 Windows 10 何时在 Windows 窗体应用程序中进入平板电脑模式?

c# - lock 和 Thread.Interrupt 哪个更快?

Task.WhenAll() 不工作的 C# 异步任务

wpf - 如何在窗口上覆盖控件?

c# - 在连接的节点之间画线

windows - 为什么 Docker 卷无法在 Windows 上运行

windows - 当人们在 Windows 上更改时钟时是否有 API 事件?