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) 两个还没用到

     

  • 相关阅读:
    传球游戏(NOIP2008 普及组第三题)
    立体图(NOIP2008 普及组第四题)
    多项式输出(NOIP2009 普及组第一题)
    分数线划定(NOIP2009 普及组第二题)
    第5到8章
    第四章总结
    实验九
    实验五
    实验四
    实验三
  • 原文地址:https://www.cnblogs.com/richy/p/2749403.html
Copyright © 2011-2022 走看看