私のWPFアプリケーションにはMainWindow
、[設定]ボタンのある通常のアプリケーションがあります。[設定]ボタンをクリックしたときに、別の[設定]ウィンドウをモーダルで開く必要があります。
public partial class MainWindow : Window
{
//...
// On Settings button click ...
var settingsWindow = new SettingsWindow();
settingsWindow.Owner = this;
settingsWindow.ShowDialog();
}
SettingsWindow
小さな「OK/キャンセル」ダイアログだけではありませんが、アプリケーションフローを続行する前にいくつかの構成作業を完了する必要があるため、モーダルにする必要があります(したがって、を使用します)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+タブ」リストに保持する可能性はありますか?そんなにありSettingsWindow.WindowStyle
ません。SingleBorderWindow
ToolWindow
この質問はこれに似ていますが、目標は少し異なります。