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

WPF是否有母版页的概念(如asp.net)?,asp.net,wpf,xbap,master-pages,Asp.net,Wpf,Xbap,Master Pages,我已经启动了一个WPF(基于web的)应用程序,它有多个页面。我想在WPF中实现母版页的概念,这样当我对一个页面的设计/布局进行更改时,其他所有页面都会随之更改,而不进行复制和粘贴。我认为母版页的概念在WPF中基本上是无效的,因为没有页面。 WPF中存在样式、模板和数据模板。不仅如此,使用DockPanel和其他容器,您还可以实现ASP.NET母版页提供的大部分功能 无论如何,如果您仍然需要母版页,我建议查看本文: HTH使用主视图并将ContentControl与主视图一起放置,然后将Con

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

我认为母版页的概念在WPF中基本上是无效的,因为没有页面。 WPF中存在样式、模板和数据模板。不仅如此,使用DockPanel和其他容器,您还可以实现ASP.NET母版页提供的大部分功能

无论如何,如果您仍然需要母版页,我建议查看本文:


HTH

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


稍后我将提供更多细节

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

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

和往常一样,这是一个开始了解概况的好地方

更多关于MSDN的内容,等等。

The(和其他几个有趣的概念)


您可以使用
Prism
开源框架(可从:)并使用该框架创建
Shell
窗口
,该窗口可用作
WPF
项目的
主窗口。然后,在Shell窗口中,您可以创建
区域
,并将视图注入这些区域

以下是MSDN对壳牌的看法(见:):

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

带WPF的基本棱柱壳结构: