SplashScreen.Close (Timespan.FromMilliseconds (int)): Wird bei "Timespan Complete" ein Ereignis ausgelöst?

9

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%     
reido113 03.11.2012, 21:22
quelle

5 Antworten

0

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%     
reido113 12.11.2012, 04:02
quelle
3

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.

    
AmazingDreams 04.11.2012 17:16
quelle
1

Ich habe festgestellt, dass der folgende Code funktioniert. Mir ist nicht ganz klar, warum und ich werde mich näher damit beschäftigen, das besser zu verstehen.

Bitte kritisieren Sie nach Bedarf, ich bin hier um zu lernen und zu teilen. Prost.

%Vor%     
reido113 05.11.2012 05:48
quelle
0

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).

    
corlettk 05.11.2012 08:06
quelle
0

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

    
reido113 16.11.2012 13:21
quelle