Я создаю приложение WinUI 3. Я использовал Template Studio для создания нескольких страниц. Теперь я пытаюсь добавить журнал в окно, который будет вызываться перед основным окном.
Экран входа в систему имеет тип окна. Вот код из App.xaml.cs, где я пытаюсь вызвать окно входа в систему. Когда я запускаю это, возникает исключение.
Я просмотрел документацию по классу приложения.
https://learn.microsoft.com/en-us/windows/ windows-app-sdk/api/winrt/microsoft.ui.xaml.application?view=windows-app-sdk-1.6
Откуда я могу вызвать окно входа в систему? и как я могу заставить мое приложение перейти в главное окно после успешного входа в систему?
protected async override void OnLaunched(LaunchActivatedEventArgs args)
{
base.OnLaunched(args);
App.GetService().Show(string.Format("AppNotificationSamplePayload".GetLocalized(), AppContext.BaseDirectory));
await App.GetService().ActivateAsync(args);
LoginWindow loginWindow = new LoginWindow();
loginWindow.Activate();
}
Я попробовал следующее, вход в систему начался нормально. Но код в OnLaunched просто продолжается и завершается. Поэтому я не могу запустить MainWindow. Как я могу сохранить код для проверки после вызова loginWindow.Activate()?
protected async override void OnLaunched(LaunchActivatedEventArgs args)
{
LoginWindow loginWindow = new LoginWindow();
loginWindow.Activate();
if (loginWindow.ValidLogin)
{
base.OnLaunched(args);
App.GetService().Show(string.Format("AppNotificationSamplePayload".GetLocalized(), AppContext.BaseDirectory));
await App.GetService().ActivateAsync(args);
}
}
NEW CODE
protected async override void OnLaunched(LaunchActivatedEventArgs args)
{
LaunchActivatedEventArgs = args;
LoginWindow loginWindow = new LoginWindow();
loginWindow.Activate();
loginWindow.Closed += LoginWindow_Closed;
}
private async void LoginWindow_Closed(object sender, WindowEventArgs args)
{
if ((sender as LoginWindow)?.ValidLogin is true)
{
base.OnLaunched(LaunchActivatedEventArgs);
//Thread.Sleep(5000);
App.GetService().Show(string.Format("AppNotificationSamplePayload".GetLocalized(), AppContext.BaseDirectory));
await App.GetService().ActivateAsync(LaunchActivatedEventArgs);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-the-main
Приложение Template Studio — добавление окна входа в систему, которое будет вызываться перед отображением главного окна ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение