2010-06-03 13 views
5

Mam host elementu z 3 kontrolkami WPF. Umieszczam element hosta na winformie. Kiedy nadchodzi moja aplikacja, host elementu zajmuje kilka sekund, a wygrywający jest wyświetlany jako pusty ekran.Problem z ładowaniem hosta elementu z WinFormami

Jak to naprawić? Wszelkie pomysły są doceniane. Zasadniczo nie chcę wyświetlać pustego ekranu, ponieważ wygląda brzydko, gdy aplikacja się zbliża.

Odpowiedz

1

To wydaje mi się bardzo dziwne. Używałem ElementHost wcześniej i nie zauważyłem żadnego poważnego opóźnienia w ładowaniu kontroli nad dziećmi.

Przydałoby się, aby spróbować wyizolować problem, zastępując kontrolki pojedynczym, prostym sterowaniem TextBox. Jak długo trwa ładowanie?

Podejrzewam, że w logice kontroli jest coś, co zajmuje dużo czasu, aby zakończyć i opóźnić ładowanie kontrolne. Jeśli możesz dowiedzieć się, co to jest i przyspieszyć lub sprawić, że przetwarzanie będzie asynchroniczne (rozważ użycie opcji Reactive Extensions), wtedy przynajmniej pozbędziesz się czarnego ekranu. Profiler (Visual Studio lub ANTS) byłby ogromną pomocą w zawężeniu tego.

1

Można przyspieszyć czas ładowania ładowanie modelu okna obciążenia & zamknąć aplikacja uruchamia się (jest to tylko trick :))

Wystarczy utworzyć nowe okno, z jednym lub dwoma hostami elementów i dodać ich dziecko WPF sterownica. nie trzeba implementować żadnej logiki ani ustawiać żadnych właściwości, wystarczy dodać elementy sterujące podrzędne.

Następnie po uruchomieniu aplikacji należy załadować okno modelu i zamknąć (ustawić położenie ładowania poza granicą ekranu). (jeśli chcesz, możesz użyć oryginalnego okna również.)

wtedy twoje okno otworzy się normalnie.

Powiązane problemy