Фоновая загрузка страницы WPF ... как? - PullRequest
2 голосов
/ 01 сентября 2011

У меня есть окно WPF с управлением вкладками. У каждого tabitem элемента управления tab есть рамка с PAGE в качестве содержимого ... как это:

 <TabItem Name="Tab01">
   <Frame Name="Tab01Frame" />
 </TabItem>
 MyPage Tab01Page = New MyPage()
 Tab01Frame.Navigate(Tab01Page)

Теперь у меня есть эта проблема. Каждая страница для tabitem загружается в оконный конструктор, и это вызывает узкое место в производительности для окна. Это займет несколько секунд, чтобы показать.

Есть ли способ загрузки страниц в фоновом режиме?

1 Ответ

2 голосов
/ 23 сентября 2011

Для начала переместите код инициализации в событие Loaded (не в конструкторе). Это сделает пользовательский интерфейс более отзывчивым. Кроме того, используйте объект Dispatcher для фоновой задачи.

 private delegate void DelegateTypeYouDeclare();

 this.Dispatcher.BeginInvoke(new DelegateTypeYouDeclare(MethodToCall), null);

Это только первые шаги. Для лучшего примера см. Следующую статью MSDN: http://msdn.microsoft.com/en-us/magazine/cc163328.aspx

...