应用设置存储主要分为本地存储和漫游存储两种方式。本地存储的指将应用的设置信息存储在本地存储空间中,而漫游存储则是指将应用的设置信息存储在网络服务器中。相对于本地存储而言,漫游存储支持多台设备之间的应用设置同步,更加灵活也更加方便。关于应用设置存储的更多知识可以通过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;
}
}
这就是应用设置存储的两个简单小应用啦。。。写完了的确感觉太基础。。。。我是渣渣,我是渣渣...........晚安啦!