WPF C# 单击时关闭窗口

本文关键字:窗口 单击 WPF | 更新日期: 2023-09-27 18:36:31

我有一个使用 FirstFloor MUI 框架应用程序的 WPF C#,它在启动时检查设置并显示特定的启动 uri

,如下所示;
if(somethings_true) {
Application curApp = Application.Current;
//ModernWindow
curApp.StartupUri = new Uri("MainWindow.xaml", UriKind.RelativeOrAbsolute);
}else{
Application curApp = Application.Current;
//ModernWindow
curApp.StartupUri = new Uri("OtherWindow.xaml", UriKind.RelativeOrAbsolute);
}

它工作正常,但是当"OtherWindow.xaml"首先处于活动状态时,它有一个执行其他检查的onclick事件,并在完成后打开MainWindow.xaml。但是在打开 MainWindow.xaml 的 Button_Click() 中,我无法关闭 OtherWindow.xaml 并在 OtherWindow.xaml 中尝试。

this.Close();

&

var OtherWin = new OtherWindow();
OtherWin.Close();

&

var w = Application.Current.Windows[0];
w.Hide();
//Only hides the OtherWindows.xaml (Still runs hidden in background even after MainWindow.xaml is closed)

我使用以下代码来检查 OtherWindow.xaml 是否仍然在 MainWindow.xaml 中打开,其中它声明它确实打开;

foreach (var wndOtherWindow in Application.Current.Windows)
{
if (wndOtherWindow is OtherWindow)
{
//Its Open Still...
//How to close() "OtherWindow.xaml" from here?
}
}

有没有另一种方法可以关闭()OtherWindow.xaml?

WPF C# 单击时关闭窗口

你应该强制转换为 Window 或特定类型(在你的例子中是 OtherWindow),这样你就可以调用 Close() 方法。试试这个:

    foreach (var wndOtherWindow in Application.Current.Windows)
    {
        if (wndOtherWindow is OtherWindow)
        {
           (wndOtherWindow as Window).Close();
        }
    }

希望有帮助。