C# 窗口C/WPF中的动态内容
我需要做一个应用程序,将只有一个窗口,你会改变窗口的内容点击一个按钮 我不知道怎么做。我想使用用户控件,但我不认为这是最好的方法。也许是tab,但它不尊重我想要的UI。那么,最好的归档方式是什么呢?当然,我需要通过differents视图传递数据和变量 下面是我想做的UI示例。如果不好,请原谅,我会尽快这么做:C# 窗口C/WPF中的动态内容,c#,wpf,user-interface,C#,Wpf,User Interface,我需要做一个应用程序,将只有一个窗口,你会改变窗口的内容点击一个按钮 我不知道怎么做。我想使用用户控件,但我不认为这是最好的方法。也许是tab,但它不尊重我想要的UI。那么,最好的归档方式是什么呢?当然,我需要通过differents视图传递数据和变量 下面是我想做的UI示例。如果不好,请原谅,我会尽快这么做: 您提供的映像看起来像一个典型的向导。向导已随附。而且完全免费。我建议你至少看一看。它允许您将任何类型的内容应用于任何页面。此外,还可以修改向导本身的行为。MVVM方面,您需要为每个页面提
您提供的映像看起来像一个典型的向导。向导已随附。而且完全免费。我建议你至少看一看。它允许您将任何类型的内容应用于任何页面。此外,还可以修改向导本身的行为。MVVM方面,您需要为每个页面提供不同的视图,并为每个视图提供一些基类。因此,用户控制是一种方法 但是,可以对具有折叠标题的多个页面使用TabControl:
<TabControl>
<TabItem Visibility="Collapsed">
<Label Content="First page"/>
</TabItem>
<TabItem Visibility="Collapsed">
<Label Content="Second page"/>
</TabItem>
</TabControl>
若要编辑特定页面,请在设计器中选择相应的项,然后可以查看其内容
对于按钮,您需要一个特殊区域,因为按钮在页面之间是通用的。这样您的窗口将包含类似网格的
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Stretch="None" HorizontalAlignment="Left" VerticalAlignment="Top" Source="logo.png"/>
<TabControl Grid.Row="1" SelectedIndex="{Binding Page}">
... tab items
</TabControl>
<StackPanel Grid.Row="2" Orientation="Horizontal" FlowDirection="RightToLeft">
<Button Command="{Binding CommandFinish}" Content="Finish"/>
<Button Command="{Binding CommandNext}" Content="Next"/>
<Button Command="{Binding CommandPrevious}" Content="Previous"/>
... and so on, from right to left
</StackPanel>
</Grid>
为了至少稍微利用MVVM,您可以有页码,这样您的ViewModel就可以知道总共需要多少页面,以及每个页面可以做些什么来控制按钮的可见性和导航。您可以使用模板选择器或导航框来实现这一点。你试过这两种吗?事实上,我什么都没试过,我对wpf很陌生,不知道所有的元素。所以我会看看这些