Это малоизвестный факт, что заставка остается на месте после того времени, которое требуется XAP для загрузки. Он не будет заменен, пока приложение RootVisual
не загрузится. Следовательно, если вы не назначите RootVisual
в приложении Startup
событие, экран-заставка будет отображаться всегда.
Следовательно, вы можете отложить показ всплеска на несколько секунд, используя такой код: -
private void Application_Startup(object sender, StartupEventArgs e)
{
var timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(10);
EventHandler eh = null;
eh = (s, args) =>
{
timer.Stop();
this.RootVisual = new Test();
timer.Tick -= eh;
};
timer.Tick += eh;
timer.Start();
}
Это можно упростить с помощью Reactive framework: -
private void Application_Startup(object sender, StartupEventArgs e)
{
Observable.Timer(TimeSpan.FromSeconds(10), Scheduler.Dispatcher)
.Subscribe((l) =>
{
this.RootVisual = new Test();
});
}
Однако структура Reactive добавляет как минимум 66 КБ к размеру вашего Xap, поэтому используйте его только тогда, когда вы уже используете Reactive для других вещей.