Виды Splash и Start находятся в одном модуле.Я подключил обработчик событий Completed (см. Комментарий @michael) в коде позади представления Splash.Инициализация модуля теперь только запускает представление Splash.
public void Initialize() {
RegisterViewsAndServices();
var vmSplash = _unityContainer.Resolve<IToolboxSplashViewModel>();
var region = _regionManager.Regions[RegionNames.Content];
region.Add(vmSplash.View);
}
Раскадровка Xaml, показывающая событие Completed:
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard Completed="StoryboardSplashCompleted">
<DoubleAnimation
Storyboard.TargetName="slamDunkImage"
Storyboard.TargetProperty="Opacity"
From="0.0" To="1.0"
Duration="0:0:2"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
Кодовый обработчик событий:
private void StoryboardSplashCompleted(object s, EventArgs args) {
_regionManager.RequestNavigate(RegionNames.Content, typeof(ToolboxStartView).FullName);
}
ToolboxStartView находится в том же модуле, поэтому внешние зависимости не требуются.
Оболочка обрабатывает запрос на навигацию и переключает представления.Файл справки Prism.chm, который является частью загрузки Prism, содержит описание навигации на основе View в главе 8. Одна неочевидная проблема заключается в том, что целевое представление (в моем случае ToolboxStartView) должно быть конфигурацией View-first,не ViewModel-first.