是否有WPF的母版页(如asp.net)的概念?

时间:2011-03-18 23:17:20

标签: asp.net wpf xbap master-pages

我已经启动了一个WPF(基于Web)应用程序,它有多个页面。我想在WPF中实现Master页面的概念,这样当我在一个页面的设计/布局中进行更改时,所有其他页面都会跟进而不需要复制和粘贴。

5 个答案:

答案 0 :(得分:3)

我不认为Master Page的概念在WPF中是有效的,因为没有页面。 在WPF中存在样式,模板和DataTemplates。不仅如此,使用DockPanel和其他容器,您还可以实现ASP.NET Master Pages提供的大部分功能。

无论如何,如果您仍然需要母版页,我建议查看这篇文章: http://www.codeproject.com/KB/WPF/WPFMasterPageControl.aspx

HTH

答案 1 :(得分:3)

WPF Magellan Framework (open source) have Master pages(以及其他一些有趣的概念)

enter image description here

答案 2 :(得分:1)

使用主视图并将ContentControl与主视图放在一起,然后将Content属性绑定到数据上下文中的属性,并将该属性设置为UserControl的实例,然后填充内容部分。

我稍后会提供更多细节

答案 3 :(得分:1)

您可以使用全局样式在应用中应用一致的外观。至于母版页的功能。看看MVVM模式。 Microsoft有一个实现,但还有其他实现。

它允许您在xaml中定义一个shell,并指定与ASP.NET中的内容占位符类似的区域。然后编写加载到shell中这些区域的用户控件。这比使用ASP.NET的母版页要多得多。但就屏幕布局而言,概念上类似。

与往常一样,开始获取概述并不是一个糟糕的地方 http://en.wikipedia.org/wiki/MVVM

在MSDN上有更多东西,等等。

答案 4 :(得分:1)

您可以使用 Prism 开源框架(可从patterns & practices: Prism下载)并使用它来创建 Shell Window,可用作MainWindow项目的WPF。然后,在Shell窗口中,您可以创建Regions并将视图注入这些区域。

以下是MSDN对Shell的看法(参见:Composing the User Interface using Prism):

  

shell是包含主UI内容的应用程序根对象。在Windows Presentation Foundation(WPF)应用程序中,shell是Window对象。在Silverlight应用程序中,shell是RootVisualUserControl。   shell扮演主页的角色,为应用程序提供布局结构。 shell包含一个或多个命名区域,其中模块可以指定将显示的视图。它还可以定义某些顶级UI元素,例如背景,主菜单和工具栏。   shell定义了应用程序的整体外观。它可以定义在shell布局本身中存在和可见的样式和边框,还可以定义将应用于插入到shell中的视图的样式,模板和主题。   通常,shell是WPF应用程序项目或主Silverlight项目的一部分。包含shell的程序集可能引用也可能不引用包含要在shell的区域中加载的视图的程序集。

WPF的基本棱镜Shell结构:

enter image description here