0

FirstFloor MUI Framework アプリを使用する 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 を close() する別の方法はありますか?

4

1 に答える 1

3

Window または特定のタイプ (あなたの場合は OtherWindow) にキャストする必要があります。そうすれば、Close() メソッドを呼び出すことができます。これを試して:

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

希望が役立ちます。

于 2016-02-28T11:44:27.970 に答える