C# WPF主窗口以显示其他页面
我正在尝试创建一个主窗口,该窗口将有一个用于导航/按钮的页眉和一个用于显示信息的页脚。 (类似于StackOverflow.com上的顶部和底部栏)C# WPF主窗口以显示其他页面,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试创建一个主窗口,该窗口将有一个用于导航/按钮的页眉和一个用于显示信息的页脚。 (类似于StackOverflow.com上的顶部和底部栏) 使主窗口作为一个可以显示页眉/页脚之间任何页面的容器运行的最佳方法是什么?创建一个包含3行的页面。顶行的高度为“自动”,中间行的高度为“*”,底行的高度也为“自动”。顶行和底行将占据页眉和页脚所需的空间,中间行将占据房间的其余部分。您可以使用网格 <Grid > <Grid.RowDefinitions>
使主窗口作为一个可以显示页眉/页脚之间任何页面的容器运行的最佳方法是什么?创建一个包含3行的页面。顶行的高度为“自动”,中间行的高度为“*”,底行的高度也为“自动”。顶行和底行将占据页眉和页脚所需的空间,中间行将占据房间的其余部分。您可以使用网格
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:TopPage Grid.Column="0" Grid.Row="0" />
<local:MidPage Grid.Column="0" Grid.Row="1" />
<local:BottomPage Grid.Column="0" Grid.Row="2" />
</Grid>
我将创建一个3行
网格
,中心项为内容控件
。将其绑定到视图模型上的CurrentPage
属性
创建一个基本页面
类,并为要显示的每页数据创建子类。该子类也是每个页面的viewmodel
为ContentControl
要使用的Page
的每个子类添加DataTemplate
,确保指定Type
属性(这是基于CurrentPage
属性将页面类型物理附加到UI的内容)。DataTemplate
的内容应该是一个UserControl
,其中包含每种页面类型的UI
现在,当您想要更改页面时,只需将CurrentPage设置为所需页面的实例,它就会自动更改
此模式将使每个页面的UI与其他页面分开,并为它们提供一个强大的视图模型(
页面
子类)。它允许超级轻松地更改页面。并且很好地遵循MVVM模式。您甚至可以将所有页面加载到显示给用户的列表中。再加上一点绑定,用户选择页面时只需很少的工作就可以直接进入页面更改行为。当我遇到这个问题时,我们使用了带有隐藏选项卡的大TabControl
。