带固定面板的Wpf应用程序

时间:2014-11-13 18:06:36

标签: wpf xaml

我需要使用这种类型的导航创建一个Wpf应用程序:

带有固定顶部面板的主屏幕,以及充当其他视图容器的窗口的其余部分。容器可以填充0或1个视图 - 在此容器中当时应该看到2个或更多窗口时,情况永远不会出现。

我已经添加了这张非常幼稚的画作:

顶部绿色面板是导航面板,按下" A"按钮,我需要在窗口的红色部分打开viewA。 同样,按下" B"按钮,我需要在窗口的红色部分打开viewB而不是viewA。

enter image description here

我的问题:

  1. 我应该使用哪些对象来表示viewA,viewB和包含窗口?这些是Windows吗?网页?

  2. 在viewA和viewB之间切换的最佳方法是什么?我更喜欢避免将viewA和viewB(以及我将拥有的任何其他视图)同时加载到内存中,只需隐藏\显示它们。

  3. 感谢。

1 个答案:

答案 0 :(得分:0)

你可以把所有的" Green"直接在你的窗口和"红色"在ContentControl中的东西(可能是UserControl),然后将它的Content属性绑定到红色的东西。所以它是这样的:

<Window x:Class="garbage.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="3*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <!--Green stuff-->
        <Button Content="A" />
        <Button Content="B" Grid.Column="1"/>
    <ContentControl Grid.Row="1" Grid.ColumnSpan="2" Content="{Binding RedStuff}">
    </ContentControl>
</Grid>