棱镜:壳之间的导航?

Pha*_*sma 3 navigation silverlight wpf prism regions

我想用Silverlight和Prism创建一个应用程序,用户可以像这样导航:

在此输入图像描述

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

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

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

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

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

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

Vac*_*ano 6

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

我不会选择mulit-shell路线.相反,我会在区域内有区域.

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

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

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

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

每个xxxxxxxContentPresenter区域都有两个区域.

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