2016-02-28 9 views
0

У меня есть WPF C# с использованием приложения FirstFloor MUI Framework, которое при запуске проверяет параметры и покажет конкретный urid запуска, как указано ниже;WPF C# Закрыть окно onclick

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. Но в Button_Click(), который делает открытие MainWindow.xaml, я не могу получить 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?

ответ

2

Вы должны указать на Window или определенный тип (в вашем случае OtherWindow), таким образом вы можете вызвать метод Close(). Попробуйте следующее:

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

Надежда помогает.

+0

Блестящий. Спасибо @Jamaxack – BENN1TH

+0

@ BENN1TH Я рад, что он решил вашу проблему. – Jamaxack