WPF Windows导航

时间:2014-10-17 11:24:55

标签: c# wpf xaml

我计划创建以下图像结构的Windows Wpf应用程序。

enter image description here

当我选择“类创建者”时,在右侧我想加载ClassCreator.xaml,当我选择“文本替换器”时,在右侧我要加载TextReplace.xaml。我如何以上述方式导航。

    <Grid>
    <DockPanel LastChildFill="True">
        <ListBox HorizontalAlignment="Left" Name="ToolMenu" Width="100">
            <ListBoxItem Content="Class Creator" />
            <ListBoxItem Content="Text Replacer" />
        </ListBox>
        <Border BorderBrush="Silver" BorderThickness="1"  Name="border1" />
    </DockPanel>
</Grid>

1 个答案:

答案 0 :(得分:1)

使用Frame作为主持人来导航内容。

<Grid>
    <DockPanel LastChildFill="True">
        <ListBox HorizontalAlignment="Left" Name="ToolMenu" Width="100">
            <ListBoxItem Content="Class Creator" />
            <ListBoxItem Content="Text Replacer" />
        </ListBox>
        <Border BorderBrush="Silver" BorderThickness="1"  Name="border1">
            <Frame x:Name="frame1" Source="ClassCreator.xaml" />
        </Border>
    </DockPanel>
</Grid>

然后在ListBox的SelectionChanged事件处理程序中,导航到另一个视图,如下所示

frame1.Navigate(new Uri("TextReplace.xaml", UriKind.Relative));

更新:或者

布局结构符合TabControl的布局结构。您可以根据此布局设置TabControl样式,左侧是Tab标题,右侧是标签项。

<Grid>
    <TabControl TabStripPlacement="Left">
        <TabControl.Resources>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <ContentPresenter Content="{TemplateBinding Content}">
                                <ContentPresenter.LayoutTransform>
                                    <RotateTransform Angle="270" />
                                </ContentPresenter.LayoutTransform>
                            </ContentPresenter>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="Padding" Value="3" />
            </Style>
        </TabControl.Resources>
        <TabItem Header="Class Creator">
            <local:ClassCreator />
        </TabItem>
        <TabItem Header="Text Replacer">
            <local:TextReplacer />
        </TabItem>
    </TabControl>
</Grid>