2021-08-19 WPF控件专题 Frame 控件详解

2021-08-19 WPF控件专题 Frame 控件详解_第1张图片

1.Frame 控件介绍

Frame ContentControl 支持导航,可以将一个页面导航到另一个页面。 可能承载Page页,

TabItem ContentControl 直接在内部添加元素,布局成一个页面,直接将一个页面内嵌到TabItem.

Winform TabControl TabPage 将一个Form内嵌到TabPage

TabItem中可以内嵌一个Window?? ---- No ----该怎么办??? Frame

Wpf中,Window—根 ,内容不能是一个window

Page页是什么? 封装一页的内容

Frame属性:
Source 要显示的Page 的路径 要导航到的新内容
NavigationUIVisibility 是否显示导航栏 automatic hidden visible

2.具体案例

<Window x:Class="WpfAppTest.FrameWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfAppTest"
        mc:Ignorable="d"
        Title="FrameWindow" Height="583.436" Width="874.634" Loaded="Window_Loaded">
        <Grid>
                <!--直接在Window中呈放一个Frame  显示一个页面-->
                <Frame Name="framePage"  HorizontalAlignment="Left" Height="113" Margin="100,47,0,0" VerticalAlignment="Top" Width="220" NavigationUIVisibility="Visible"/>
                <TabControl HorizontalAlignment="Left" Height="306" Margin="88,196,0,0" VerticalAlignment="Top" Width="642">
                        <TabItem Header="TabItem">
                                <Frame Source="PageRoleInfo.xaml" NavigationUIVisibility="Hidden"/>
                        </TabItem>
                        <TabItem Header="TabItem">
                                <Frame Source="PageUserInfo.xaml" NavigationUIVisibility="Hidden"/>
                        </TabItem>
                </TabControl>


        </Grid>
</Window>

private void Window_Loaded(object sender, RoutedEventArgs e)
{
        //1.直接在xaml代码中设置Source
        //2.
        // framePage.Source = new Uri("PageRoleInfo.xaml",UriKind.Relative);
        //3.先实例化Page对象
        PageRoleInfo pageRoleInfo = new PageRoleInfo();
        framePage.Navigate(pageRoleInfo);
        string ss = "aaa";
        framePage.Navigate(pageRoleInfo, ss);//假设需要传值
}

你可能感兴趣的:(WPF控件专题)