3

我想用 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 )只使用一个布局永远不会改变的shell,但如果布局必须改变怎么办?

4

1 回答 1

6

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

我不会选择多壳路线。相反,我会在区域内有区域。

注意:在您进行设计之前,您需要询问是否可以使您的内容既可以水平也可以垂直(即绑定到 Orientation 并使用 WrapPanels)。如果可以,那么您可以重用您的实际内容区域。

你可以通过一个 shell 来设计这个,其中包含几个区域,这些区域的可见性由你的应用程序控制。

例如:成功登录后,登录区域被隐藏,而 StyleSelector 区域显示(带有 A 和 B 按钮)。

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

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

正如我上面所说,根据您的控件如何,您可以在 xxxxxxContentPresenter 区域内重复使用相同的区域(甚至可以让这些区域也是相同的区域)。

于 2012-10-29T17:57:09.823 回答