WPF C#单击关闭窗口

WPF C#单击关闭窗口,c#,wpf,xaml,window,windows-mui,C#,Wpf,Xaml,Window,Windows Mui,我有一个WPF C#使用FirstFloor MUI Framework应用程序,它在启动时检查设置,并显示具体的启动uri,如下所示 if(somethings_true) { Application curApp = Application.Current; //ModernWindow curApp.StartupUri = new Uri("MainWindow.xaml", UriKind.RelativeOrAbsolute); }else{ Application curAp

我有一个WPF C#使用FirstFloor MUI Framework应用程序,它在启动时检查设置,并显示具体的启动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的按钮中,我无法关闭OtherWindow.xaml,我尝试在OtherWindow.xaml中打开它

this.Close();
&

&

我使用下面的代码检查OtherWindow.xaml是否仍然在MainWindow.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?

您应该强制转换为Window或特定类型(在您的情况下为OtherWindow),这样您可以调用close()方法。试试这个:

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

希望有帮助。

您应该强制转换为Window或特定类型(在您的情况下为OtherWindow),这样您就可以调用Close()方法。试试这个:

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

希望有帮助。

太棒了。谢谢@JamaxackBrilliant。谢谢@Jamaxack
    foreach (var wndOtherWindow in Application.Current.Windows)
    {
        if (wndOtherWindow is OtherWindow)
        {
           (wndOtherWindow as Window).Close();
        }
    }