【问题标题】:Prism: Navigation between Shells?棱镜:贝壳之间的导航?
【发布时间】:2012-10-15 18:45:53
【问题描述】:

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

红色矩形表示内部具有不同 Prism 模块的区域(本例中为 6 个不同的模块)。

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

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

  • 我知道区域导航管道可用于在区域中的视图之间切换。这也可以用来在不同的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,但如果布局必须改变怎么办?

【问题讨论】:

标签: wpf silverlight navigation prism regions


【解决方案1】:

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

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

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

您可以设计一个外壳,其中包含多个区域,这些区域的可见性由您的应用控制。

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

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

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

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

【讨论】:

  • 我在棱镜上搜索了很多隐藏区域,但找不到。如果您有示例代码,请将其放在此答案中,这将是一个很大的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多