WPF ShowDialog gibt beim zweiten Aufruf sofort null zurück

Ich denke, dies ist ein Fehler im WPF-Framework, ohne auf die Details meines Programms einzugehen, und warum ich das tue, was ich tue. Ich habe eine einfache Testanwendung geschrieben, um meine Theorie zu beweisen.

Kann dieses Problem bestätigt werden? Was sind mögliche Problemumgehungen für eine Reihe von Dialogfeldern, die ausgeführt werden müssen, bevor die Anwendung in ihre Ausführungsschleife versetzt wird?

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;

namespace ShowDialogWindow
{
  /// <summary>
  /// Interaction logic for App.xaml
  /// </summary>
  public partial class App : Application
  {
    protected override void OnStartup(StartupEventArgs e)
    {
       Window testWindow = new Window();
       testWindow.ShowDialog();
       testWindow.Close();
       // THE CODE BELOW WILL NOT SHOW THE NEXT WINDOW
       Window testWindow2 = new Window();
       testWindow2.ShowDialog();
       testWindow2.Close();
    }
  }
}
Aktualisieren:

Sicher kann ich mein Design ändern, um dieses Verhalten zu berücksichtigen. Was ich versuchte zu tun, war jedoch wirklich einfach.

Ich habe meine abgeleitetMyApplication vonApplication. Auf derMain()Ich starte eine Reihe von Startprüfungen, z. B. Lizenzinformationen, Begrüßungsbildschirm, Konnektivitäts- und Konfigurationsprüfungen usw. Wenn ich alles klar habe, rufe ich anMyApplicatiom.Run(MyMainForm).

Dieses Design basiert auf einer normalen Windows-Anwendung, die problemlos funktioniert.

Vielen Dank für Ihre Hilfe, und ich erinnere mich, dass Sie nicht anrufen könnenShowDialog() Vorapplication.Run() da es einfach ein Herunterfahren initialisiert. Ich hätte jedoch gedacht, dass eine Abschaltsequenz erst nach einem eingeleitet werden sollteApp.Run() Anweisung.

Bitte korrigieren Sie mich, wenn ich das falsch verstehe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage