你的位置:首页 > 操作系统

[操作系统]Windows Phone 8.1之应用设置存储的简单应用


应用设置存储主要分为本地存储和漫游存储两种方式。本地存储的指将应用的设置信息存储在本地存储空间中,而漫游存储则是指将应用的设置信息存储在网络服务器中。相对于本地存储而言,漫游存储支持多台设备之间的应用设置同步,更加灵活也更加方便。关于应用设置存储的更多知识可以通过msdn或者相关书籍来了解,这次介绍的内容为简单的本地存储方式的应用。(本人还是在大学摸索的渣渣,大神勿喷!!!)

 

首先是利用应用存储设置来判断应用是否第一次启动:

在App.xaml.cs文件的OnLaunched方法中对代码做如下更改:

        rootFrame.ContentTransitions = null;        rootFrame.Navigated += this.RootFrame_FirstNavigated;        ApplicationDataContainer settings = Windows.Storage.ApplicationData.Current.LocalSettings;//获取本地应用设置容器        //判断settings容器里面有没有"First"这个键        if (!settings.Values.ContainsKey("First"))        { //应用首次启动,必定不会含"First"这个键,让应用导航到GuidePage这个页面,GuidePage这个页面就是对应用的介绍啦          rootFrame.Navigate(typeof(GuidePage));          //在settings容器里面写入"First"这个键值对,应用再次启动时,就不会在导航到介绍页面了。          settings.Values["First"] = "yes";        }        else        {          //应用不是第一次启动时,直接导航到MainPage          if (!rootFrame.Navigate(typeof(MainPage), e.Arguments))          {            throw new Exception("Failed to create initial page");          }        }      }      // 确保当前窗口处于活动状态      Window.Current.Activate();

开发应用的时候,我们也可以把GuidePage的内容设置成应用的”帮助“部分,用户点击”帮助“直接导航至GuidePage。。这样就是一举两得了。
如果嫌整一个页面麻烦,我们也可以在第一次导航至MainPage的时候弹出一个对话框,什么的啦,方法与这类似了。

 

还有就是利用应用存储设置实现更换应用的主题:

这个小Demo只有两个页面(MainPage和ThemePage),然后我就把一些东西都放在OnNavigatedTo方法里面了,那就在实际开发的时候调整一下啦。

然后所谓的主题其实就是几张图片,不过真正的更换主题应该和这个大同小异吧。

ThemePage.cs:

      private void back1_Tap(object sender, TappedRoutedEventArgs e)
        {  //主题1

             //将ThemePage页面的主题设置为图片back1,并将图片路径存入settings容器,方便后面读取。
            img.ImageSource= new BitmapImage(new Uri("ms-appx:///Assets/back1.jpg"));
            this.Background = img;
            settings.Values["theme"] = "ms-appx:///Assets/back1.jpg";
        }
        private void back2_Tap(object sender, TappedRoutedEventArgs e)
        {
            img.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/back2.jpg"));
            this.Background = img;
            settings.Values["theme"] = "ms-appx:///Assets/back2.jpg";
        }

MainPage.cs:

 protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (settings.Values.ContainsKey("theme"))
            {//如果settings里面有theme这个键,就取出它的值,值为已保存的图片路径。
                string str = settings.Values["theme"].ToString();
                imgb.ImageSource = new BitmapImage(new Uri(str));
                this.Background = imgb;
            }      
        }


这就是应用设置存储的两个简单小应用啦。。。写完了的确感觉太基础。。。。我是渣渣,我是渣渣...........晚安啦!