在我的 WPF 应用程序中,我有一个普通MainWindow
的设置按钮。单击“设置”按钮时,我想要一个单独的“设置”窗口来打开模式。
public partial class MainWindow : Window
{
//...
// On Settings button click ...
var settingsWindow = new SettingsWindow();
settingsWindow.Owner = this;
settingsWindow.ShowDialog();
}
尽管事实上,这SettingsWindow
不仅仅是一个小的“确定/取消”对话框,我希望它是模态的(所以我使用ShowDialog()
),因为在应用程序流程继续之前需要完成一些配置内容。SettingsWindow
带有最小/最大/关闭按钮的普通窗口也是如此。
如果用户最小化SettingsWindow
,MainWindow
不仅应该被推到后台,而且也应该被最小化。这样做可以正常工作:
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;
}
}
}
当SettingsWindow
和MainWindow
最小化时,我可以通过在图标上单击鼠标将它们恢复为正常 WindowState,但我无法通过使用“Alt + Tab”来实现这一点,因为应用程序在此列表中消失了。在“Win-Key + Tab”列表中,该应用程序仍然存在。
是否可以将应用程序保留在“Alt + Tab”列表中?SettingsWindow.WindowStyle
所以SingleBorderWindow
没有ToolWindow
。_
我知道,这个问题与此类似,但目标有点不同。