Приложение XAML предполагает, что первое окно, созданное главным окном (Showdialog игнорируется), мне нужно показать несколько окон

StackOverflow https://stackoverflow.com/questions/4199932

Вопрос

У меня есть следующий код в моем app.xaml.cs

private void App_Start(object sender, StartupEventArgs e)
{
  if ( CompletedInstall())
  {
    //using show to allow for pacifier if loading is slow
    var manager = new WINServiceConfig();
    MainWindow = manager;
    manager.ShowDialog();
  }
}

private bool CompletedInstall()
{
    var window = new Initialize();
    window.ShowDialog();
    return window.DoLaunchManager;
}

и следующее в app.xaml

<Application x:Class="Manager.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Startup="App_Start">

Когда я комментирую строку, которая проверяет Завершенное install () а Manager.showdialog () работает нормально, а мое окно конфигурации показывает. Когда Завершенное install () называется призывом к Manager.showdialog () возвращается сразу, не отображая окно. Я добавил главное окно в предположении, что где -то вдоль линии кто -то решил, что приложение должно показывать только одно окно.

Я нашел обходной путь, установив главное окно перед вызовом

        private void App_Start(object sender, StartupEventArgs e)
        {
          var manager = new WINServiceConfig();
          MainWindow = manager;

          if (CompletedInstall())
          {
            manager.ShowDialog();
          }

Но это заставляет меня разработать WinServiceConfig (в частности конструктор) на основе его использования, потому что он не может рассчитывать на завершенные предпосылки. Это плохая форма. Что еще я могу сделать, чтобы обойти эту проблему?

Ложное окно? Это не может быть лучшим ответом. Может это??

Это было полезно?

Решение

Вы должны установить ShutdownMode в OnexPlicitShutDown (по крайней мере, пока показывают начальный диалог).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top