如果使用 prism 6,我如何覆盖默认启动类或窗口。 我浏览了 prism 的官方文档,但找不到预期的答案。
我尝试使用 Prims 6 从 PrismApplication 派生 Application 类,但它抛出了一个错误。
public partial class App : PrismApplication {}
因为这并没有发生。
您必须使用 Bootstrapper 类来初始化并创建 shell 或启动窗口,然后在 app.xaml.cs 中的启动方法中创建一个实例
Bootstrapper.cs:
public class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
// Resolve any instance here
return Container.TryResolve<MainWindow>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
}
然后在 App.xaml.cs 文件中重写 OnStartUp 方法并在那里创建此实例并运行引导程序。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
}
注意:StartUp 属性值应从 app.xaml 文件中删除...