Если пользователь регистрируется успешно, то я хочу показать главное окно, если нет, я хочу выйти из приложения

Глупо простой вопрос, который я не могу понять.

У меня есть приложение WPF, и я хочу сначала открыть диалоговое окно входа в систему (до появления главного окна).

Если пользователь успешно выполнил вход в систему, я хочу показать главное окно, если нет, я хочу выйти из приложения.

Как это сделать правильно?

Ответ 1

Думаю, я понял, что я пытаюсь сделать.

1) Мне нужно было установить "StartupUri" в App.xaml на "Logon.xaml", где Logon.xaml - мое окно входа в систему.

2) в обработчике событий LogonButton_Click, я добавил следующее

if (blnAuthenticateSuccessful) {
    MainWindow main = new MainWindow();
    App.Current.MainWindow = main;
    this.Close();
    main.Show();
}

Это похоже на то, что я хочу.

Ответ 2

Если вы хотите, чтобы появилось новое окно, позволяющее пользователю вводить свою регистрационную информацию, я добавил код ниже. Однако создание реального модального диалогового окна немного сложнее в WPF, поэтому я не объяснил его здесь. В WPF есть информация о модальных диалоговых окнах: http://msdn.microsoft.com/en-us/library/aa969773.aspx

В MainWindow вы можете открыть окно входа в систему и скрыть это главное окно:

// Code for MainWindow

// Create a new instance of the login window and then show it
LoginWindow loginWindow = new LoginWindow();
loginWindow.Show();

// Hide the MainWindow until later
this.Hide();

Затем используйте это на странице входа, чтобы снова отобразить главное окно после входа пользователя:

// Code for Login window

// This code finds the main window again and shows it
Application.Current.MainWindow.Show();