棱镜:壳之间的导航?

时间:2012-10-25 14:40:01

标签: wpf silverlight navigation prism regions

我想用Silverlight&创建一个应用程序用户可以像这样导航的棱镜:

enter image description here

红色矩形描绘了内部具有不同Prism模块的区域(在此示例中为6个不同的模块)。

解决以下问题的最佳方法是什么:

  • AFAIK shell中的区域不会改变,但我不能通过使用相同的区域来创建我想要的不同布局(例如,一旦模块水平堆叠,一次垂直堆叠)。在这里有多个炮弹是不错的选择?

  • 我知道可以用于在区域中的视图之间切换的区域导航管道。这也可用于在不同的壳之间切换吗?

  • 在shell之间导航感觉不对,但我怎么能解决这个问题?

这似乎是一种常见的情况,但我无法找到相关信息。大多数应用程序,即使是复杂的应用程序(例如http://blogs.msdn.com/b/erwinvandervalk/archive/2009/03/02/how-to-build-an-outlook-style-application.aspxhttp://www.codeproject.com/Articles/165370/Creating-View-Switching-Applications-with-Prism-4,StockTrader RI)只使用一个外壳,其布局永远不会改变,但如果布局必须改变怎么办?

1 个答案:

答案 0 :(得分:6)

免责声明:我是WPF Prism程序员,所以我的回答可能不适用于Silverlight。

我不会选择mulit-shell路线。相反,我会在区域内设置区域。

注意:在设计之前,您需要询问是否可以以水平或垂直方式(即绑定到Orientation和使用WrapPanels)的方式制作内容。如果可以的话,您可以重复使用实际的内容区域。

您可以通过设置一个包含多个区域的shell进行设计,这些区域的可见性由您的应用控制。

例如:成功登录后,将隐藏登录区域并显示StyleSelector区域(使用A和B按钮)。

按下其中一个后,将隐藏StyleSelector区域,并显示VerticalContentPresenter区域或Horizo​​ntalContentPresenter区域。

每个xxxxxxxContentPresenter区域内都有两个区域。

正如我上面所说,根据控件的使用方式,您可以在xxxxxxContentPresenter区域内重复使用相同的区域(甚至可以将它们设置为相同的区域)。