Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 无初始外壳的棱镜应用_Wpf_Prism - Fatal编程技术网

Wpf 无初始外壳的棱镜应用

Wpf 无初始外壳的棱镜应用,wpf,prism,Wpf,Prism,我一直在创建一个WPF应用程序,它最初作为任务栏图标加载,然后单击打开一个合适的窗口。这是一个原型,我想转到Prism,看了Mike Taulty(channel9.msdn.com/niners/mtaulty)的(极好的)视频我觉得我需要做的是创建一个带有自定义引导程序的应用程序,该引导程序完成所有服务注册,但不创建初始shell,而是简单地加载模块,并可能识别要运行的模块。有没有人做过类似的事情,如果有,我要做多少工作?好的,我咬紧牙关,试了试。我应该首先声明我使用的是Autofac版本的

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

好的,我咬紧牙关,试了试。我应该首先声明我使用的是Autofac版本的引导程序

  • 我将null返回到CreateShell
  • 我在App.Xaml顶部的声明中标记了apps ShutdownMode=“OnExplicitShutdown”(很重要,否则在关闭最后一个窗口时它会关闭应用程序)
  • 我创建了一个模块(IModule派生),该模块由Philipp Summi()加载WPF通知图标
  • 为了响应这个图标上上下文菜单的命令,我只需创建窗口及其视图模型并显示它

这一切正如我所希望的那样。我唯一要做的事情就是看看如何在这些临时窗口中使用区域,尽管其他文章似乎已经介绍了这一点。我不相信Autofac引导程序给了我任何好处,但我已经使用Autofac开发了一个非常早期的原型,并坚持使用它,因为它进行得很顺利。从长远来看,我可能会选择Unity或MEF,以避免兼容性问题,并允许从外部插件动态加载模块

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