Shell 的两种创建方式:
- Bootstrapper
- PrismApplication
一. Bootstrapper
1. 创建继承 PrismBootstarpper 的类.
class Bootstrapper : PrismBootstrapper
{
/// <summary>
/// 创建一个壳子容器, 相当于房子的墙.
/// </summary>
/// <returns></returns>
protected override DependencyObject CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
2. 删除 App.xaml 中的 StartupUri="MainWindow" 启动项.
3. 在 App.xaml.cs 中设置启动项.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
}
二. PrismApplication
1. 删除 App.xaml 中的 StartupUri="MainWindow" 启动项.
2. App.xaml 中引用 Prism 包.
<prism:PrismApplication x:Class="PrismApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:PrismApp"
xmlns:prism="http://prismlibrary.com/">
<Application.Resources/>
</prism:PrismApplication>
3. App.xmal.cs 中 App 继承 PrismApplication
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
return Container.Resolve<MainView>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
4. 创建容器壳子
Container.CreateShell