App XAML nimmt das erste Fenster instanziiert ist das Hauptfenster (Showdialog wird ignoriert), ich mehrere Fenster zeigen müssen

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

Frage

Ich habe den folgenden Code in meinem 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;
}

und folgende im 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">

Wenn ich die Zeile aus kommentieren, dass die Kontrollen CompletedInstall () manager.ShowDialog () funktioniert gut, und meine Konfigurationsfenster zeigt. Wenn CompletedInstall () wird der Anruf an manager.ShowDialog () kehrt sofort ohne Anzeige der Fenster genannt. Ich fügte hinzu, das Hauptfenster auf der Annahme, dass irgendwo entlang der Linie jemand eine App entschieden nur ein Fenster zeigen soll.

fand ich eine Abhilfe durch das Hauptfenster Einstellung vor CompletedInstall Aufruf

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

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

aber diese Kräfte mich WINServiceConfig (speziell der Konstruktor), basierend auf dessenderen Nutzung zu entwickeln, weil sie nicht über die Voraussetzungen nicht abgeschlossen zählen können. Das ist eine schlechte Form. Was kann ich tun, um dieses Problem zu bekommen?

Dummy-Fenster? Das kann nicht die beste Antwort sein. Kann es ??

War es hilfreich?

Lösung

Sie sollten die Shutdown auf OnExplicitShutdown gesetzt (zumindest während des Anfangsdialog angezeigt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top