Настраиваемая заставка / стартовая страница для приложения SL4 OOB с использованием Prism - PullRequest
0 голосов
/ 20 сентября 2011

Я мог бы использовать некоторую помощь, чтобы выяснить, как лучше всего реализовать "заставку" / начальную страницу для моих клиентских приложений Silverlight 4, которые созданы с использованием Prism 2 и работают вне браузера.

Я поддерживаю набор приложений и работаю над общей библиотекой элементов управления и служб, которые могут использовать все приложения.В рамках этого я создаю подкласс класса UnityBootstrapper для регистрации сервисов.

Я столкнулся с ситуацией, когда мне нужно «предварительно загрузить» пару сервисов с данными изсервер при запуске.Это может занять некоторое время, поэтому мы хотели бы отобразить заставку, пока выполняются все шаги запуска.Поскольку у нас не работает браузер, я знаю, что это не так просто.Любая помощь приветствуется.

Я также открыт для других подходов к загрузочным данным, которые не могут быть «загружены ленивыми».

Ответы [ 2 ]

0 голосов
/ 24 сентября 2011

Итак, после многих проб и ошибок, я пришел к следующему подходу, над которым я сейчас работаю, чтобы увидеть, насколько хорошо он работает.

Я создал Shell UserControl в своей библиотеке классов, котораядействует как оболочка (контейнер) для пользовательского интерфейса.Я установил этот элемент управления как RootVisual.В содержание этого элемента управления я добавляю свой элемент управления / представление заставки и выполняю все необходимые вызовы службы запуска.Используя WaitHandles, я жду, пока все вызовы не вернутся, прежде чем заменить заставку на стартовую страницу приложения.

Приложение не знает, как все это работает, что и было моей целью.Они просто переопределяют метод, который я добавил в загрузчик, чтобы выполнить любые вызовы службы запуска.Вызовы сервиса выполняются в фоновом потоке, и код использует WaitHandle.WaitAll для блокировки до завершения всех вызовов, который затем использует Dispatcher.BeginInvoke для замены всплеска главной страницей приложения.

Все это кажетсяработать очень хорошо.

0 голосов
/ 22 сентября 2011

Проверьте пример проекта призмы (в вашей установке PRISM):

Prism \ Quickstarts \ Modularity

Это покажет вам, как ЗНАТЬ, когда модуль загружается / завершается

Вы можете просто использовать индикатор Busy со стилем над Shell, чтобы указать, что вы загружаете.

...