【问题标题】:Prism App Does Not Exit When ClosedPrism App 关闭时不退出
【发布时间】:2011-05-06 02:58:03
【问题描述】:

我正在学习棱镜,但遇到了一个问题。

我制作了一个非常类似于 Mike Taulty 制作的应用程序,该应用程序是关于 Prism 的很棒的教程。最大的不同是我的应用是 WPF 应用而不是 Silverlight。

我发现我遇到了问题。当我关闭主 shell 窗口时,应用程序不会退出。窗口消失了,但调试器仍然处于活动状态。

我曾尝试寻找调用堆栈等,但 Visual Studio 只是告诉我它是“外部代码”。

关于我可以做什么/寻找解决此问题的任何想法?

【问题讨论】:

    标签: wpf prism


    【解决方案1】:

    在 App.xaml 后面的代码中覆盖 OnStartup 方法,并添加:

    this.ShutdownMode = ShutdownMode.OnMainWindowClose; 
    

    HTH

    【讨论】:

    • 你太棒了!非常感谢!
    【解决方案2】:

    戴尔的回答只解决了部分问题。

    我遇到了同样的问题,过了一段时间我发现区域导航命令也不能正常工作。

    问题在于在 Bootstrapper 中创建的 Shell。 当我修复它时,我得到了 2 个 Shell windows 实例。 为什么?

    真正的问题是 app.xaml 中的 startup Uri。 您不能在 Bootstrapper 中同时启动 Uri 和 Shell 创建。

    从 app.xaml 中删除它,修复你的 Shell,不需要这个“补丁”,你的应用会正常运行,当你关闭 Shell 时它会关闭。

    同样,这只是一个症状,如果您不修复 Shell 创建,将会出现其他问题。

    protected override DependencyObject CreateShell()
    {
        return this.Container.Resolve<Shell>();
    }
    
    protected override void InitializeShell()
    {
        base.InitializeShell();
    
        Application.Current.MainWindow = (Shell)this.Shell;
        Application.Current.MainWindow.Show();
    
        IRegionManager regionManager = this.Container.Resolve<IRegionManager>();
        regionManager.RegisterViewWithRegion(RegionNames.MainRegion, typeof(MainView));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 2021-08-06
      • 2012-07-13
      • 2011-12-09
      相关资源
      最近更新 更多