wpf - Prism :壳之间的导航?

标签 wpf silverlight navigation prism regions

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

enter image description here

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

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

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

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

最佳答案

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

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

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

您可以通过一个 shell 来设计它,该 shell 包含多个区域,这些区域的可见性由您的应用程序控制。

例如:登录成功后,登录区域隐藏,样式选择器区域显示(使用 A 和 B 按钮)。

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

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

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

关于wpf - Prism :壳之间的导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071048/

相关文章:

c# - 在派生类中通过 .NET 反射调用 protected 泛型方法

c# - Silverlight Xaml 中的 ComboBox IsEnabled 绑定(bind)问题

silverlight - ControlTemplate.Triggers Silverlight 3 中的 WPF 等效项

CSS 导航栏悬停 - 背景更改

Android Navigation Drawer 从 URL 设置图片

wpf - 如何将焦点设置为 UserControl(使其可选择)?

c# - 如何查找 UserControl 的子项而不是 Window - 替换 Window.FindName

wpf - 在主窗口的边界处剪辑 wpf 弹出窗口

java - JSF 外部链接

WPF 数据绑定(bind) IsEnabled 属性