【问题标题】:Prism application with no initial shell没有初始外壳的 Prism 应用程序
【发布时间】:2013-08-17 07:36:01
【问题描述】:

我一直在创建一个 WPF 应用程序,它最初作为任务栏图标加载,然后在单击时打开一个适当的窗口。这是一个原型,我想转移到 Prism 并观看了 Mike Taulty (channel9.msdn.com/niners/mtaulty) 的(极好的)视频,我觉得我需要做的是创建一个具有执行所有服务注册但不创建初始 shell 而是简单地加载模块并可能标识要运行的模块的自定义引导程序。有没有人做过类似的事情,如果有的话,我需要做多少工作?

【问题讨论】:

  • 制作一个隐藏和折叠的外壳怎么样,只是为了顺其自然并让迈克开心(我也喜欢他的视频)。
  • Garry,原因是应用程序实际上并没有这样的窗口。此外,我真的不喜欢伪造 emtpy shell 的想法,因为我的下一个问题是如何让区域经理使用新窗口(该问题已在其他地方得到解答),然后如何让模块注册与新的区域经理?所以我仍然在我怀疑的引导程序中进行了一些自定义工作。

标签: wpf prism


【解决方案1】:

好吧,我硬着头皮试了一下。我应该首先声明我使用的是 Autofac 版本的 Bootstrapper。

  • 我将 null 返回给 CreateShell
  • 我在 App.Xaml 顶部的声明中标记了应用程序 ShutdownMode="OnExplicitShutdown"(重要的是,否则它会在您关闭最后一个窗口时关闭应用程序)
  • 我创建了一个模块(IModule 派生),它加载了 Philipp Summi (http://www.codeproject.com/Articles/36468/WPF-NotifyIcon) 的 WPF 通知图标
  • 为了响应来自此图标上下文菜单的命令,我只需创建窗口及其视图模型并显示它。

这一切都如我所愿。我唯一要做的就是看看如何在这些临时窗口中使用区域,尽管其他文章似乎已经涵盖了这一点。我不相信 Autofac 引导程序会给我带来任何巨大的优势,但我使用 Autofac 开发了一个非常早期的原型并坚持使用它,因为它运行顺利。从长远来看,我可能会使用 Unity 或 MEF,以避免兼容性问题并允许从外部插件加载动态模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2015-12-04
    相关资源
    最近更新 更多