具有耦合Minimize的ShowDialog使应用程序在“Alt + Tab”列表中消失

时间:2012-11-26 14:25:53

标签: c# wpf

在我的WPF应用程序中,我有一个普通的MainWindow设置按钮。 单击“设置”按钮后,我想要一个单独的“设置”窗口来打开模态。

public partial class MainWindow : Window
{
    //...

    // On Settings button click ...
    var settingsWindow = new SettingsWindow();
    settingsWindow.Owner = this;
    settingsWindow.ShowDialog();
}

尽管事实上,SettingsWindow不仅仅是一个小的“Okay / Cancel”对话框,我希望它是模态的(所以我使用ShowDialog()),因为一些配置需要是在申请流程继续之前完成。所以SettingsWindow是一个带有最小/最大/关闭按钮的普通窗口。

如果用户最小化SettingsWindowMainWindow不仅应该被推到后台,而且应该最小化。通过这样做可以正常工作:

public partial class SettingsWindow : Window
{
    // ...
    protected override void OnStateChanged(EventArgs e)
    {
        base.OnStateChanged(e);
        if (WindowState == WindowState.Minimized && Owner != null)
        {
            Owner.WindowState = WindowState.Minimized;
        }
        if (WindowState == WindowState.Normal && Owner != null)
        {
            Owner.WindowState = WindowState.Normal;
        }
    }
}

SettingsWindowMainWindow最小化时,我可以通过在图标上单击鼠标将它们恢复到Normal WindowState,但我无法通过使用“Alt + Tab”实现此目的因为该列表中的应用程序消失了。在“Win-Key + Tab”列表中,应用程序仍然存在。

是否有可能将应用程序保留在“Alt + Tab”列表中? SettingsWindow.WindowStyleSingleBorderWindow,因此没有ToolWindow

我知道,这个问题类似于this,但目标有点不同。

0 个答案:

没有答案