zoukankan      html  css  js  c++  java
  • 4. 导航

    1. Frame

    UWP 上的页面导航都是通过 Frame 实现的,其中,应用本身就是一个 rootFrame:

    Frame rootFrame = Window.Current.Content as Frame;

      我们当然也可以在 Frame 里面再内嵌一个自己的 Frame。

    2. Frame.Navigate

      当我们要进行页面导航时,可以简单的使用 Navigate 方法进行。

      比如我们有一个 Name="myFrame" 的 Frame,想要导航到 Page1:

    myFrame.Navigate(typeof(Page1));

    而当我们在 Page1 中想要导航去 Page2 时,则可以使用 Frame 找到上一级的 Frame 元素(myFrame)进行导航:

    Frame.Navigate(typeof(Page2));

      而如果我们想要在页面之间传值,则可以直接把对象传递:

    Frame.Navigate(typeof(Page2), textBox.Text);

    然后在 Page2 中重写 OnNavigatedTo 方法以接受数据:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
          textBox.Text = e.Parameter as string;
    }

    3. History

      页面的导航会产生一个导航历史栈,因此也可以通过 GoBack 和 GoForward 的方法向前向后导航,导航前应检查 CanGoBack 和CanGoForward 属性:

    if (myFrame.CanGoBack)
    {
        myFrame.GoBack();
    }
    
    if (myFrame.CanGoForward)
    {
        myFrame.GoForward();
    }

      要注意的是,往前导航时会将页面重置,也就是说如果之前的页面上有填写内容,返回时该填写内容会消失。

      解决的方法有很多,其中一个方法就是将该数据保存在 App 下的全局变量中。

    4. HyperlinkButton

    可以通过 HyperlinkButton 来打开浏览器浏览页面:

    <HyperlinkButton Content="Go to Microsoft" NavigateUri="http://www.microsoft.com"/>

    5. 手机上的返回键

      如果你按下手机上的返回键,应用并不会返回上一页,而是回到手机系统主界面,如果想实现返回上一页的需求,可以通过手机特有的 API 进行调整,具体方法在以后的博客中会介绍。


    原视频链接:

    UWP-019 - Working with Navigation

  • 相关阅读:
    ZigBee学习二 LED点对点通信
    ZigBee学习一 任务处理函数_ProcessEvent
    关于count(分组字段)的问题
    hive命令行 显示字段名配置
    Linux 查看当前目录下的文件大小
    apache 端口号与 CDH端口号对比
    dbeaver驱动问题解决方案
    【数学】递推算法之平面分割问题总结
    【HDOJ】(1426)Sudoku Killer (dfs)
    【牛客】牛客小白月赛1(数学)
  • 原文地址:https://www.cnblogs.com/xiaoshi3003/p/5000839.html
Copyright © 2011-2022 走看看