C # WPF-Anwendung
Ich habe einen SplashScreen , der beim Start für eine Mindestmenge angezeigt wird Zeit mit
%Vor%Wenn diese Ruhezeit erreicht ist, wird der Code fortgesetzt und der SplashScreen wird ausgeblendet, um ihn mit
zu schließen %Vor%Ich möchte an dieser Stelle anhalten, um zu warten, bis der SplashScreen 100% transparent ist und vollständig geschlossen ist, und dann mit anderen Aufgaben fortfahren, I.E. In die Konsole schreiben oder ein MainWindow anzeigen.
Wird ein Ereignis ausgelöst, wenn das (TimeSpan.FromMilliseconds (int)) abgeschlossen ist? Irgendwelche anderen Vorschläge?
%Vor%Ich habe nie ein Ereignis gefunden, auf das ich nach Fertigstellung der TimeSpan warten sollte. Nachdem ich entschieden habe, die Threads nicht zu stoppen, entschied ich mich stattdessen, stattdessen DispatcherTimers zu verwenden.
(Ich habe die Logik ausgedünnt und zu Referenzzwecken in diese eine Klasse aufgenommen)
%Vor%Vielleicht kann dieser Code Ihnen helfen. Verwenden der Backgroundworker-Klasse:
%Vor%Dies sollte das Schließen Ihres Splashscreen starten, dann durchschlafen, und wenn es fertig ist, öffnet es Ihr Hauptfenster. Ich benutze etwas sehr ähnliches, um ein Login zu implementieren und Informationen für meine WPF App abzurufen, während ich einen Fortschrittsbalken zeige und den darin enthaltenen Text in Sachen wie "Mit Server verbinden", "Anmelden" und "Daten holen" updatet.
Ich kam schließlich zu dem Schluss, dass ich in meinen früheren Kommentaren den falschen Baum anbellte. Das Anzeigen des SplashScreen im Hintergrund ist sowohl problematisch (er hat sich geweigert, automatisch zu schließen, egal was ich versuchte) als auch unnormal. Hier ist, womit ich endete ... Wirklich einfach!
%Vor%Ich hoffe, das hilft ... obwohl ich mir überhaupt nicht sicher bin, dass es das wird; -)
Prost. Keith.
PS: Ich frage mich, warum der Splash sich geweigert hat zu schließen? Meine Vermutung beruht intern auf Ereignissen, die nur auf dem WPF-Äquivalent des Ereignis-Dispatch-Threads (wie auch immer er genannt wird) verfügbar sind (d. H. Abonnierbar).
Ich habe ein Ereignis namens "SplashScreen.Dismissed" gefunden, mit dem Sie die App starten können, nachdem der SplashScreen abgelaufen ist. Das minimal erforderliche Betriebssystem ist Windows 8 und ich konnte es nicht verwenden. Weitere Informationen finden Sie hier MSDN
Tags und Links wpf c# splash-screen timespan event-listener