gpt4 book ai didi

wpf - ALT-TAB 始终激活具有多个拥有窗口的 WPF 应用程序中的主窗口

转载 作者:行者123 更新时间:2023-12-04 18:56:41 30 4
gpt4 key购买 nike

在 Windows 7、.NET 4.0 上,我遇到了一个问题,可以通过将以下代码复制到 Visual Studio 生成的空白 WPF 应用程序中来重现该问题:

    public MainWindow()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainWindow_Loaded);
}

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
new Window() { Title = "Test", ShowInTaskbar = false, Owner = this }.Show();
}
  1. 运行应用
  2. 激活辅助窗口
  3. Alt-Tab 到其他正在运行的应用程序
  4. 使用鼠标在任务栏中激活我们的 WPF 应用

现在 WPF 应用程序再次激活,激活辅助窗口并停用主窗口,这是预期(和期望)的行为。

现在改为执行此操作(只有第 4 步不同):

  1. 运行应用
  2. 激活辅助窗口
  3. Alt-Tab 到其他正在运行的应用程序
  4. Alt-Tab 返回我们的 WPF 应用

WPF 应用程序再次处于事件状态,但现在主窗口已激活。添加此代码

private void Application_Activated(object sender, EventArgs e)
{
Windows[1].Activate();
}

到 App.xaml.cs 并不能解决问题,因为现在在第二种情况下,两个窗口都被激活了。此外,单击辅助窗口不会停用主窗口。我必须再次单击(已激活的)主窗口和辅助窗 Eloquent 能实现此目的。

我怎样才能避免这种情况(在这两种情况下只有辅助窗口应该处于事件状态)?

最佳答案

CodeProject 实际上解决了这个问题 here ,希望这就是您要找的。

结合 post from Tamil Khason从理论上讲,您可以在全局级别覆盖 OnFocus 事件,这样每次窗口获得焦点时,它就会成为“主窗口”,然后成为 ALT+TAB 的目标。

关于wpf - ALT-TAB 始终激活具有多个拥有窗口的 WPF 应用程序中的主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670639/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com