Hide WPF-Fenster bis vollständig geladen

8

Für meine WPF-Anwendung speichere ich verschiedene Benutzereinstellungen wie Fensterposition, Fensterstatus und ob ein Begrüßungsdialog angezeigt werden soll oder nicht. Das Problem ist, dass, während alles geladen wird, ich eine Menge blinkendes und flackern sehe, wie die Fenster geladen werden, und dann mehr flackern, wenn das Fenster maximiert wird, nachdem ich die Einstellungen eingelesen habe.

Ich verwende bereits die integrierte WPF PNG-Splash-Screen-Funktion, aber gibt es eine Möglichkeit, das Rendern aller Fenster vollständig zu verbergen, bis alles vollständig geladen ist?

    
Ben McIntosh 27.09.2009, 10:53
quelle

4 Antworten

10

Bearbeiten Sie die Application.xaml, entfernen Sie die StartUpUri, und legen Sie stattdessen den StartUp-Ereignishandler fest. Bearbeiten Sie in Application.xaml.cs den Startup-Ereignishandler, um den Splashscreen anzuzeigen, laden Sie Ihre Ressourcen, erstellen Sie alles, erstellen Sie dann das Hauptfenster und zeigen Sie es an.

%Vor%

Und:

%Vor%     
Danny Varod 27.09.2009, 15:52
quelle
3

Es gibt Funktionen, BeginInit und EndInit, wenn Sie Eigenschaften innerhalb dieser Funktionen wie ..

ändern %Vor%

dann wird Ihr Fenster nicht gerendert, bis EndInit () aufgerufen wird, es wird nicht flackern.

    
Akash Kava 27.09.2009 11:08
quelle
1

Sie können Windows WindowState auf Minimized setzen, dann das ContentRendered-Ereignis behandeln und den WindowState auf Normal oder Maximized setzen.

    
Shawn 22.10.2012 18:57
quelle
0

Wann tritt dieses Laden auf? Code, der im Hauptkonstruktor von Window ausgeführt wird, sollte ausgeführt werden, bevor das Fenster angezeigt wird. Wenn Sie dort benötigte Ressourcen laden, sollten Sie kein Flimmern sehen.

    
Eamon Nerbonne 27.09.2009 15:56
quelle

Tags und Links