c# - CompositeWPF 是否支持多个窗口/外壳?

标签 c# .net wpf prism

我正在考虑使用 CompositeWPF ( http://www.codeplex.com/CompositeWPF ) - 又名 Prism,来构建我正在处理的应用程序。

该应用程序不是传统的 LOB 应用程序,但它确实向用户提供数据和状态信息。

我不确定的一件事是 CompositeWPF 是否支持多个 Window 或 Shell。我想让我的应用程序使用出现在屏幕下方 RHS 中的无边框窗口通知用户(想想 MSN 通知),但仍然使用将 View 注入(inject)该区域等的想法。

除此之外,我希望能够对用户操作使用react(例如,双击某个内容),隐藏主窗口并在执行工作时显示进度对话框。

那么,这可能吗?

最佳答案

我已经使用 Composite wpf 几个月了,看不出有什么理由不能完成您要求的事情。

我可能不会走多 shell 路线,有一个“复合 wpf contrib 项目”定义了一个“WindowRegionAdaptor”,它应该可以很容易地在单独的窗口中显示 View (参见此处:http://www.codeplex.com/CompositeWPFContrib)我没有使用过它,但已经使用了一些其他贡献项目,并且它们按广告宣传的那样工作。尽管其中一些文档目前很少甚至不存在,但论坛可能会有用。

我必须尝试一下,但您可以使用事件聚合器在您的双击操作上发布一个事件

eventAggregator.GetEvent<MainWindowShowEvent>().Publish(false);

ShellPresenter 可以订阅并调用 shell View 以在接收时隐藏:

eventAggregator.GetEvent<MainWindowShowEvent>().Subscribe(b => View.Show(b) );

然后使用 WindowRegionAdaptor 来显示您的进度对话框,随后在完成时发布主窗口订阅的第二个事件,导致它再次显示..(上面我使用有效负载来指示 shell 应该显示还是隐藏)

希望其中的一些帮助 - 所有未经测试

崔维

关于c# - CompositeWPF 是否支持多个窗口/外壳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276906/

相关文章:

CentOS 5.5 中 Wine 中的 .Net 框架

c# - WPF如何使StackPanel可滚动

c# - 绑定(bind)到 WPF 中的另一个绑定(bind)

c# - 我可以在 WCF ServiceContract 中公开数据成员吗?

c# - 无法从另一个线程访问对象

c# - Mathf.Approximately(0.0f, float.Epsilon) == true 其行为是否正确?

c# - 如何在动态生成的C#代码中初始化各种类型变量?

c# - 是否有适用于 .NET 的 Open Office 或 Libre Office SDK?

c# - System.TypeLoadException异常

c# - 使用未分配的变量 - for 循环