private void Login(System.Windows.Window loginView) { // ログイン画面が閉じられた時にアプリケーションが終了しないよう、OnExplicitShutdownを設定しておく Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; var isLoggedin = loginView.ShowDialog() ?? false; var isAuthenticated = Thread.CurrentPrincipal.Identity.IsAuthenticated; if (isLoggedin && isAuthenticated) { // MainWindowが閉じられた時にアプリケーションが終了するように変更 Current.ShutdownMode = ShutdownMode.OnMainWindowClose; var vm = new LoggedinViewModel(); vm.UserName = Thread.CurrentPrincipal.Identity.Name; var loggedinView = new LoggedinView(); loggedinView.DataContext = vm; Current.MainWindow = loggedinView; loggedinView.ShowDialog(); } else { // OnExplicitShutdownの場合、明示的なShutdown()呼び出しが必要 Current.Shutdown(-1); } }