2010-06-03 6 views
5

Ich habe einen Element-Host mit 3 WPF-Steuerelementen. Ich stelle den Element-Host auf eine Winform. Wenn meine Anwendung gestartet wird, dauert das Element Host einige Sekunden und die Winform wird als leerer Bildschirm angezeigt.Element Host Ladezeit Problem mit Winforms

Wie behebt man das? Irgendwelche Ideen werden geschätzt. Grundsätzlich möchte ich nicht den leeren Bildschirm anzeigen, wie es hässlich aussieht, wenn die Anwendung hochfährt.

Antwort

1

Das scheint mir wirklich seltsam. Ich habe zuvor einen ElementHost verwendet und keine schwerwiegenden Verzögerungen beim Laden von untergeordneten Steuerelementen bemerkt.

Es wäre hilfreich, wenn Sie versuchen könnten, das Problem zu isolieren, indem Sie Ihre Steuerelemente durch ein einfaches, einfaches TextBox-Steuerelement ersetzen. Wie lange dauert das Laden?

Mein Verdacht ist, dass es etwas in Ihrer Steuerlogik gibt, das eine lange Zeit benötigt, um das Laden der Steuerung abzuschließen und zu verzögern. Wenn Sie herausfinden können, was das ist und beschleunigen Sie es oder machen Sie die Verarbeitung asynchron (in Betracht ziehen Sie Reactive Extensions), dann werden Sie mindestens den schwarzen Bildschirm loswerden. Ein Profiler (Visual Studio oder ANTS) wäre eine große Hilfe bei der Verengung.

1

Sie können Ihre Ladezeit durch das Laden Modellfenster Last & schließen Sie Ihre Anwendung starten (Dies ist nur ein Trick :))

einfach erstellen neues Fenster mit einem oder zwei Element-Hosts beschleunigen und ihr Kind wpf hinzufügen Kontrollen. Sie müssen keine Logik implementieren oder Eigenschaften festlegen. Fügen Sie einfach untergeordnete Steuerelemente hinzu.

Dann beim Start der Anwendung laden Sie Ihr Modellfenster und schließen (Ladeort von der Bildschirmgrenze entfernt einstellen). (Wenn Sie möchten, können Sie auch Ihr Originalfenster verwenden.)

dann öffnet sich Ihr Fenster normal.