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

本文介绍了WPF中Frame控件的使用,包括其在导航页面和TabItem中的应用。Frame可用于内嵌Page内容,通过Source属性设置要显示的页面,并可通过NavigationUIVisibility控制导航栏的可见性。示例代码展示了如何在Window和TabControl中使用Frame展示PageRoleInfo.xaml和PageUserInfo.xaml,并演示了在代码中动态导航到Page的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

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);//假设需要传值
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值