Страницы

Поиск по вопросам

воскресенье, 12 мая 2019 г.

Окно ввода логина/пароля в WPF

В моей программе на WPF я использую библиотеку MahAps.Metro и при запуске программы я хочу отображать диалоговое окно, где можно будет ввести логин/пароль.
Но выдает ошибку System.InvalidOperationException. Не пойму, в чем дело. Может потому что метод, отображающий окно, в конструкторе вызываю?
public MainWindow() // Конструктор { InitializeComponent(); LogIn(); }
private async void LogIn() { LoginDialogData result = await this.ShowLoginAsync("Authentication", "Enter your credentials", new LoginDialogSettings { ColorScheme = this.MetroDialogOptions.ColorScheme, InitialUsername = "MahApps" }); }
У меня есть код, обрабатывающий нажатие кнопки. При нажатии возникает диалоговое окно, где можно вести логин/пароль. Внутри обработчика нажатия на копку все работает, но если этот код скопировать в метод выше, то опять будет та же ошибка...
private async void buttonLogOut_Click(object sender, RoutedEventArgs e) { var title = "Enter your credentials"; var settings = new LoginDialogSettings { ColorScheme = MetroDialogOptions.ColorScheme }; while (true) { var result = await this.ShowLoginAsync("Authentication", title, settings); if (result.Username == "dima" && result.Password == "123456") break; title = "Wrong data, try again"; } }


Ответ

Исходя из сообщения об ошибке, нужно запускать LogIn после загрузки окна:
public MainWindow() // Конструктор { InitializeComponent(); Loaded += (o, args) => LogIn(); }

Комментариев нет:

Отправить комментарий