我一直在创建一个 WPF 应用程序,该应用程序最初作为任务栏图标加载,然后在单击时打开相应的窗口。这是一个原型(prototype),我想转移到 Prism 并观看了 Mike Taulty 的(精彩)视频 (channel9.msdn.com/niners/mtaulty) 我觉得我需要做的是创建一个应用程序自定义 Bootstrap ,它执行所有服务注册但不创建初始 shell,而是简单地加载模块并可能标识要运行的模块。有没有人做过类似的事情,如果有的话,我需要做多少工作?
最佳答案
好吧,我硬着头皮试了一下。我应该首先说明我使用的是 Bootstrapper 的 Autofac 版本。
- 我向 CreateShell 返回了 null
- 我在 App.Xaml 顶部的声明中标记了应用程序 ShutdownMode="OnExplicitShutdown"(这很重要,否则它会在您关闭最后一个窗口时关闭应用程序)
- 我创建了一个由 Philipp Summi (http://www.codeproject.com/Articles/36468/WPF-NotifyIcon) 加载 WPF 通知图标的模块(IModule 派生)
- 为了响应此图标上上下文菜单中的命令,我简单地创建了窗口及其 View 模型并显示它。
一切如我所愿。我还没有做的唯一一件事就是看看如何使用这些临时窗口的区域,尽管其他文章似乎已经涵盖了这一点。我不相信 Autofac Bootstrap 给我带来了任何巨大的优势,但我已经使用 Autofac 开发了一个非常早期的原型(prototype)并坚持使用它,因为它进行得很顺利。从长远来看,我可能会选择 Unity 或 MEF,只是为了避免兼容性问题并允许从外部插件加载动态模块。
关于wpf - 没有初始 shell 的 Prism 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286353/