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

转载于:https://www.cnblogs.com/xiaoshi3003/p/5000839.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值