wpf - 没有初始 shell 的 Prism 应用程序

标签 wpf prism

我一直在创建一个 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/

相关文章:

c# - View 是否应该间接绑定(bind)到 MVVM 模型中的属性?

wpf - WPF Prism 中的登录窗口

c# - WPF 无边框窗口问题 : Aero Snap & Maximizing

.net - 我应该将什么类型的对象绑定(bind)到 n 层应用程序中的 WPF 表单?

c# - 自定义样式的 TextBox SelectionStart 始终为 0

c# - 属性绑定(bind)没有响应

wpf - 为什么特殊字符是无效的按钮内容?

c# - Prism shell 模板,正在创建 ShellView 的两个实例

c# - 不能使用与其父 Freezable 属于不同线程的 DependencyObject - prism

wpf - 控制初始化顺序惨败