1

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

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

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

尽管事实上,这SettingsWindow不仅仅是一个小的“确定/取消”对话框,我希望它是模态的(所以我使用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最小化时,我可以通过在图标上单击鼠标将它们恢复为正常 WindowState,但我无法通过使用“Alt + Tab”来实现这一点,因为应用程序在此列表中消失了。在“Win-Key + Tab”列表中,该应用程序仍然存在。

是否可以将应用程序保留在“Alt + Tab”列表中?SettingsWindow.WindowStyle所以SingleBorderWindow没有ToolWindow。_

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

4

0 回答 0