Le problème que vous rencontrez vient du fait que WPF gère l'arrêt.
Vous pouvez modifier l'arrêt-comportement à travers le ...
Application.Current.ShutdownMode
... propriété. Changez-le à une valeur approriate:
Application.Current.ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose;
cela aidera.
Une autre façon est de définir manuellement la propriété MainWindow
à votre deuxième fenêtre.
Si vous souhaitez créer uniquement un écran d'accueil , utilisez l'option splashscreen disponible depuis .net 3.51. L'informatique a l'avantage d'être chargée très tôt dans la séquence de chargement de l'application, beaucoup plus tôt qu'une fenêtre peut le faire.
Pour ce faire, ouvrez les propriétés onglet d'une image dans votre projet explorer et définir le Construire action à SplashScreen
Mise à jour
Dans un de mes apps J'ai eu un design qui devait aussi montrer un dialogue modal avant d'afficher la fenêtre principale. A ce moment je ne connaissais pas le ShutdownMode
-property.
Ce que j'ai fait, c'est que j'ai commencé un Window
qui était invisible pour l'utilisateur. C'était la première fenêtre et elle contrôlait aussi app-livetime (comportement par défaut de WPF). Hors de cette fenêtre j'ai ouvert le dialogue désiré (une fenêtre qui a été montrée modale). Si cette boîte de dialogue a échoué, j'ai fermé la fenêtre masquée et l'application complètement fermée. Si la boîte de dialogue s'est déroulée correctement, j'ai créé la première instance de MainWindow, avec laquelle l'utilisateur peut travailler.
Non, les deux n'ont pas aidé. Mais il semble que j'ai exclu cette situation. Je me cache à propos de la fenêtre et cela aide pour une raison quelconque. –
Je pense que vous devez supprimer StartupURI et ouvrir le formulaire manuellement. Cependant ce que vous décrivez est aussi un moyen possible (je l'ai utilisé aussi pour un problème similaire). Mais seulement comme une suggestion, si votre seul désir est de montrer une information sur le démarrage de l'application, pensez à utiliser l'option splash-screen.Il est montré au tout début de l'application, avant de charger les assemblages de graisse et donc son utilisation conduit à une bien meilleure expérience utilisateur pour votre application. – HCL
Non, la boîte de dialogue À propos est juste un exemple, désolé d'induire en erreur. Ce sera LogonDialog. –