C# WPF 页面切换(Page)

简单的Page切换

启动时为page的切换

这里是启动时就是page页面;

先创建几个page页面,内部创建几个按钮比如前进后退;

Page的切换用到的最重要的函数:NavigationService

判断后退:

 //判断是否可以后退
 if (NavigationService.CanGoBack)
    NavigationService.GoBack();//后退

判断前进:

if (NavigationService.CanGoForward)
   NavigationService.GoForward();

跳转到指定page

 //跳转到指定的页面;
 NavigationService.Navigate(new Uri("Page3.xaml", UriKind.RelativeOrAbsolute));

使用Hyperlink切换

添加一个TextBlock控件

删除Xaml中的Text="TextBlock",将最后面的/>改为>zai在后面添加HyperLink 

<TextBlock HorizontalAlignment="Left" Margin="117,371,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Height="34" Width="160" FontSize="20">跳转到<Hyperlink NavigateUri="Page3.xaml">Page3</Hyperlink></TextBlock>
<TextBlock HorizontalAlignment="Left" Margin="523,373,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="20">跳转到<Hyperlink NavigateUri="http://www.baidu.com">百度</Hyperlink></TextBlock>

windows窗体内加载page页

第一步将Xaml中的Window类改为 NavigationWindow类,并将其中的<Grid>删除,同时更改代码里面的继承类;

然后在“Title” 这一行后面加上Source(手动添加吧,我这边测试Source选项很难点出来不知道什么原因;)如果不希望显示前进后退栏再输入ShowsNavigationUI="False"

Title="MainWindow" Height="450" Width="800" Source="Page1.xaml" ShowsNavigationUI="False"/>

 

windows窗体内加载page页2:

添加一个Frame控件到窗体,如果想要填满窗体将标签内的内容删完;

然后在属性-公共里面-Source中设置要绑定的page,如果不希望显示前进后退栏将NavigationUIVisibility属性设置为Hidden;这个时候就可以显示page页了;(最好设置一个名字后面要用);

添加一个StackPanel控件,如果想要填满窗体可以将StackPanel内的内容全部删除

将一个StackPanel空间设置分为两部分,设置FrameA在右边部分:设置布局内的Column属性为1;

并在左边添加三个按钮,并注册按钮事件;

  <Frame x:Name="FrameA" Content="FrameA" Source="/pagetext;component/Page1.xaml" NavigationUIVisibility="Hidden" Grid.ColumnSpan="2" Grid.Column="1" />
  <StackPanel >
     <Button Content="page1" Click="Page1_click"/>
     <Button Content="page2" Click="Page2_click"/>
     <Button Content="page3" Click="Page3_click"/>

  </StackPanel> 

设置FrameA绑定的页;

  private void Page1_click(object sender, RoutedEventArgs e)
        {
            this.FrameA.Source = new Uri("Page1.xaml", UriKind.RelativeOrAbsolute);
        }

        private void Page2_click(object sender, RoutedEventArgs e)
        {
            this.FrameA.Source = new Uri("Page2.xaml", UriKind.RelativeOrAbsolute);
        }

        private void Page3_click(object sender, RoutedEventArgs e)
        {
            this.FrameA.Source = new Uri("Page3.xaml", UriKind.RelativeOrAbsolute);
        }

 

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值