Приложение Template Studio — добавление окна входа в систему, которое будет вызываться перед отображением главного окнаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Приложение Template Studio — добавление окна входа в систему, которое будет вызываться перед отображением главного окна

Сообщение Anonymous »

Я создаю приложение 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»