Laden...

UserControl nach bestimmter Zeit ausblenden

Erstellt von King vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.305 Views
K
King Themenstarter:in
27 Beiträge seit 2006
vor 15 Jahren
UserControl nach bestimmter Zeit ausblenden

Hallo Leute!

Ich habe folgendes Problem. Ich habe in WPF einen einfachen Ladebildschirm(UserControl) erstellt. Dieser soll alle nötigen Ordner und Dateien, im Hintergrund überprüfen und der User soll in der zwischen Zeit nicht in der Lage sein irgendetwas was zu tun (außer das Programm komplett zu beenden).

Jetzt möchte ich zum Test ganz einfach den Ladebildschrim(UserControl) ins Fenster laden (funktioniert ohne Probleme) dann den Benutzer z.B. 3 sek warten lassen und danach ein anderes UserControl laden.

Mein Problem ist das ich nicht weiß wo und wie ich die Zeitverzögerung einbauen kann. Wenn ich sie im Konstruktor einbaue dann sperre ich die gesamte GUI, Ladebildschirm wird nicht angezeigt und danach wird gleich das nächste UserControl geladen, somit ist das erste gar nicht sichtbar.

Habt ihr eine idee wie ich eine Wartezeit zwischen dem Laden der zwei Bildschirme einbaue kann?

Vielen Dank für eure Hilfe.

5.742 Beiträge seit 2007
vor 15 Jahren

Hallo King,

du kannst dem Dispatcher eines _Window_s sagen, dass er eine Aktion erst nach einer gewissen Zeitspanne ausführen soll.

Übergib dazu der Überladung Dispatcher.Invoke(Delegate, TimeSpan, object[]) einfach einen Delegaten, der auf eine Methode zeigt, die den Ladebildschirm schließt und eine TimeSpan, die 3 Sekunden repräsentiert.

Noch besser wird es aber sein, nach der Überprüfung, die du hoffentlich in einem eigenen Thread durchführst, das Window zu schließen. Dann klappt auch alles, wenn diese nicht genau 3 Sekunden dauert 😉
Beim Zugriff aus dem anderen Thread auf das Window hilft dir ebenfalls Dispatcher.Invoke bzw. Dispatcher.BeginInvoke

K
King Themenstarter:in
27 Beiträge seit 2006
vor 15 Jahren
UserControl nach bestimmter Zeit ausblenden [gelöst]

Vielen Dank für deine Hilfe!!