【UWP开发】19-Navigation(导航)除MainPage的其他页面,导航栏功能的添加

如何添加新的空白页

去选项菜单->添加新项,选择空白页
在这里插入图片描述
选择的新页面会被导入到mianpage frame以及从中导出

解决方案目录信息

在这里插入图片描述
mianpage.xml:

<StackPanel Margin="20,0,0,0">
        <StackPanel Orientation="Horizontal" Margin="0,20,0,20">
            <Button Content="Home" Name="HomeButton" Click="HomeButton_Click" Margin="0,0,10,0" />
            <Button Content="Back" Name="BackButton" Click="BackButton_Click" Margin="0,0,10,0" />
            <Button Content="Next" Name="NextButton" Click="NextButton_Click" />
            <Button Content="Navigate" Name="NavigateButton" Click="NavigateButton_Click" Margin="0,0,10,0" />
        </StackPanel>
        <Frame Name="MyFrame" MinHeight="300">

        </Frame>
    </StackPanel>

navigate为导航栏,只有这样能加载页面
在这里插入图片描述

想加载Page1信息到MainPage.cs里面加载Page1信息

MainPage.cs:

public sealed partial class MainPage : Page
  {
    public MainPage()
    {
      this.InitializeComponent();
      MyFrame.Navigate(typeof(Page1));
    }

    private void HomeButton_Click(object sender, RoutedEventArgs e)
    {
      MyFrame.Navigate(typeof(Page1));
    }

    private void BackButton_Click(object sender, RoutedEventArgs e)
    {
      if (MyFrame.CanGoBack)
      {
        MyFrame.GoBack();
      }

    }

    private void NextButton_Click(object sender, RoutedEventArgs e)
    {
      if (MyFrame.CanGoForward)
      {
        MyFrame.GoForward();
      }
    }

    private void NavigateButton_Click(object sender, RoutedEventArgs e)
    {
      this.Frame.Navigate(typeof(Page2));
    }



  }

在这里插入图片描述
Page1.xaml:

<StackPanel>
        <TextBlock FontSize="48">Page 1</TextBlock>
        <HyperlinkButton Content="Click to go to page 2" Click="HyperlinkButton_Click"/>
        <HyperlinkButton NavigateUri="http://www.microsoft.com" Content="Go To Microsoft.com" />
    </StackPanel>

超链接按钮如下:

使用NavigateUri转到想要的连接

在这里插入图片描述
在Page1.xaml.cs里加一个跳转指令

  private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
    {
      Frame.Navigate(typeof(Page2));
    }

同理:
page2.xaml

<StackPanel Background="Red">
        <TextBlock FontSize="48">Page 2</TextBlock>
        <HyperlinkButton Content="Click to go to page 3" Click="HyperlinkButton_Click" />
    </StackPanel>

page2.cs
同1
page3.xaml

 <StackPanel Background="Yellow">
        <TextBlock FontSize="48">Page 3</TextBlock>
        <TextBox Name="ValueTextBox" Width="200" HorizontalAlignment="Left" />
        <HyperlinkButton Content="Click to go to page 4" Click="HyperlinkButton_Click"/>
    </StackPanel>

page3.cs

 private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
    {
      Frame.Navigate(typeof(Page4), ValueTextBox.Text);
    }

page4.xaml

<StackPanel Background="Green">
        <TextBlock FontSize="48">Page 4</TextBlock>
        <TextBox Name="ValueTextBox" Width="200" HorizontalAlignment="Left" />
        <HyperlinkButton Content="Click to go to page 5" Click="HyperlinkButton_Click"/>
    </StackPanel>

page4.cs

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
      string value = (string)e.Parameter;
      ValueTextBox.Text = value;
    }
        private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
        {
            Frame.Navigate(typeof(Page5));
        }

说明:
这里我们将Page3的一个值传到了Page4里面

  • 这里分为两个步骤,第一步Page3输入

Page3.xaml文件里

在这里插入图片描述

Page3.cs里加入

在这里插入图片描述

  • 第二步,Page4接收并输出

在这里插入图片描述
这个时候我们发现数据进入了Page4我们返回Page3的时候数据不见了,这个时候我们需要进入App.xaml.cs这个文件
1.加红框的代码
在这里插入图片描述
2.然后进入Page3.xaml.cs文件里,底下的Page3实际为Page2
在这里插入图片描述

这部分代码逻辑也是Page4里的,可以复制过来,稍加修改

在这里插入图片描述

如何导航到一个frame level的page里

主函数里加这个,导航栏消失如下图
在这里插入图片描述
在这里插入图片描述

参考链接

Navigation(导航)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一拳Marx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值