zoukankan      html  css  js  c++  java
  • Win8的页面导航

    在Win8里面没有对话框概念,不同界面就是不同的页,有点类似于网页了。所以其导航很简单

    Frame.Navigate(typeof(PageMoblieCode),obj);//obj参数

    但是今天遇到一个问题,我跳转页面到另外一个,但是返回的时候我希望原先页面的值还存在。在ASP.NET里面很简单判断IsPostBack就好了。但是在Win8的里面怎么也没找的到。后来找了半天才知道,原来Win8的页面导航默认是不启用缓存的,后退页面的时候是恢复成初始状态。后来找到一个Page的一个NavigationCacheMode属性,意思是获取或设置一个导航模式,该导航模式指示此 Page 是否已缓存和在时间段内缓存项是否应保持不变,是一个枚举类型但是默认Disabled。

    更改需要在构造函数中修改

    public PageMoblieCode()
            {
                this.InitializeComponent();
                NavigationCacheMode = NavigationCacheMode.Enabled;//设置启用页面缓存
            }

    这样返回的时候,之前的页面所做的修改就还存在。但应该在你想启用缓存的页面的构造函数里面设置 和ASP.NET一样。

    还有一个就是 void OnNavigatedTo(NavigationEventArgs e),是当页面将要在Frame中显示的时候调用。其有一个NavigationMode 来判断当前页面是新来(New)的还是后退(Back)的还是前进(Forward)的,这样适合数据初始化

    protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if(e.NavigationMode == NavigationMode.New){
                    //数据初始化
                }
            }

    OnNavigatingFrom(NavigatingCancelEventArgs e)OnNavigatedFrom(NavigationEventArgs e) 两个还没用到

     

  • 相关阅读:
    CSS——before和after伪元素
    CSS——滑动门技术及应用
    CSS案例3(在线教育网站)
    CSS——背景渐变
    CSS字体图标
    CSS——精灵技术
    CSS——溢出文字隐藏
    Intellij IDEA -01 如何配置项目!
    Intellij Idea -02 如何将项目工程横向排列变成纵向排列
    java8 --新特性汇总
  • 原文地址:https://www.cnblogs.com/richy/p/2749403.html
Copyright © 2011-2022 走看看