Karte laden-Fenster
Meine Anwendung in WPF Belastungen externe Ressourcen, so möchte ich zeigen, ein laden, während das Programm geladen wird.
Ich habe versucht, um das Formular zu erstellen, und zeigen vor den be-code, und schließen, wenn das laden beendet.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
LoadForm lf = new LoadForm();
lf.Visibility = Visibility.Visible;
//Al code that delays application loading
lf.Close();
}
Aber das einzige, was ich bekomme, ist, dass die form zeigte, wenn Ladevorgang abgeschlossen ist und schließt Sie sofort wieder.
Ich denke, dass ich System.Threading aber nicht sicher.
Dank.
Hinweis lade ich alle Anwendung von externen Ressourcen in Window_Loaded () - Methode und nicht in der main-Methode der Klasse.
- Ich denke, Sie sind in dem richtigen Weg, wenn Sie denken über threads. Sie sollten öffnen Sie Ihr Formular und laden Sie alle von dem Zeug in einen anderen thread. Damit ist Ihre Anwendung ist sehr hilfsbereit, und es wird sich nicht sperren Sie die Benutzeroberfläche.
- Was ist ein splash-screen? Würde das funktionieren?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie schauen, in diesem MSDN Artikel über die Erstellung einer SplashScreen in WPF. Im wesentlichen fügen Sie das Bild, das Sie anzeigen möchten, um Ihr Projekt und setzen Sie die Build Action auf SplashScreen es wird sich zeigen, wenn Ihr Programm startet, und verschwinden, wenn Ihr Hauptfenster der Anwendung angezeigt.
Könnte man auch versuchen, den Import der
System.ComponentModel
Klasse BackgroundWorker, Zeigen Sie Ihre Be-Form, es wird Ihnen erlauben, behalten die Reaktionsfähigkeit der Benutzeroberfläche.BackgroundWorker
hilftDann sollten Sie Ihre Zeit verbrauchen-code in einem hintergrund-thread (für die, die Sie verwenden können, BackgroundWorker, Task-oder Async-Await, je nach dot-net-framework-version)
Sich auch der beste Weg, um zu zeigen, lade-Bildschirm. Sie können zeigen, einige Animationen im Hauptfenster als auch. Ich glaube nicht, dass zeigt eine form, ist der beste Weg.
Machte ich eine Loader-Klasse, vor einer Weile, die Sie nutzen könnten. Es zeigt ein Fenster, während Sie Ihre laden-Methode, schließt es, wenn abgeschlossen, und Sie erhalten die Ausgabe der Methode:
Wie es zu benutzen: