Показать несколько окон в Startup-Event

1

У меня есть приложение с 2 Windows. Я удалил StartupUri в App.xaml. Вместо этого я подписался на Startup -Event, чтобы показать мою Windows.

Мои два окна называются Login и MainWindow.

В Startup -Event у меня есть следующий код:

private void App_OnStartup(object sender, StartupEventArgs e)
{
    var login = new Login();
    var dialogResult = login.ShowDialog();
    if (dialogResult.HasValue && dialogResult.Value)
    {
        var mainWindow = new MainWindow();
        mainWindow.ShowDialog();
    }
}

Когда я запускаю свое приложение, появляется окно входа в систему. В окне входа в систему есть только одна Button. При нажатии этой Button будет выполнен следующий код:

private void ButtonClick(object sender, RoutedEventArgs e)
{
   DialogResult = true;
   Close();
}

Мои ожидания теперь, что при щелчке по Button в окне входа в систему появляется MainWindow. Вместо этого полное приложение прекращается.

Если я установил BreakPoint в StartUp -Event в if (dialogResult.HasValue && dialogResult.Value) я могу ввести скобки и код в скобках выполняется, но MainWindow не появляется.

Любые идеи, почему это происходит?

Я могу решить эту проблему, вызвав MainWindow в Click -Event окна входа в систему.

var mainWindow = new MainWindow();
mainWindow.Show();
Close();
Теги:
xaml
wpf

2 ответа

1
Лучший ответ

Этот пост может представлять интерес. Он указывает на эту ссылку, которая, как я думаю, описывает аналогичную проблему для того, что вы описываете.

В основном первое открытое окно считается основным окном приложения.

Я бы предположил, что вы должны оставить свой MainWindow по умолчанию и открыть окно входа в событие Loaded MainWindow - если вход не увенчается успехом, закройте главное окно (прежде чем он получит возможность открыть).

1

Это связано с тем, что свойство ShutDown для вашего приложения обычно устанавливается на "OnLastWindowClose".

Таким образом, вы должны создать экземпляр своего MainWindow перед закрытием вашего окна входа в систему или изменить свойство Shutdown-Property.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню