Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469...

本文是隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东——用户设置。
当然了,可能翻译为应用程序设置合适一些,不过没关系,只要大家明白,它就是用于保存我们的应用程序的设置信息就行了。

它属于字典集合,每一项保存的数据都以键-值对的形式存储,键值是字符串类型,不能为null,注意啊,不然会引发异常,当然,估计也没有人这么无聊,把空值保存。

使用方法很简单,通过IsolatedStorageSettings的ApplicationSettings静态属必返回一个IsolatedStorageSettings实例,然后呢,你就可随便耍了。

1、要向集合加入数据可调用Add方法,它的定义如下:
     public void Add(string key, object value)
相信大家知道怎么用了。

2、使用Contains(string key)方法检测一下某个键是否存在,在读取上次保存的数据时,这是必须的。

3、Clear方法不用我介绍,一看名字就知道非常恐怖,一不小心,就把你写入的所有设置都清除,当然,在没有调用Save方法前,还没有写入隔离存储区的。

4、Remove(string key)方法,当你觉得某项设置不需要了,或者你觉得它人品太差,需要删除,可以调用该方法,参数更不用我说了,对就是要删除的项的键,比如你是QQ群主,你想踢掉某个人品值较低的成员时,你肯定要先知道TA的QQ号或昵称。

5、Save这个不用说了,你懂的。


事不宜迟,做个练习,你马上就会懂的。
这个例子很简单了,在两个文本框中输入值,当离开页面时保存,当用户导航到页面后自动加载保存到隔离存储的数据。

[html] view plaincopyprint?
  1. <phone:PhoneApplicationPage   
  2.     x:Class="PhoneApp1.MainPage"  
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
  6.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
  7.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
  8.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
  9.     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"  
  10.     FontFamily="{StaticResource PhoneFontFamilyNormal}"  
  11.     FontSize="{StaticResource PhoneFontSizeNormal}"  
  12.     Foreground="{StaticResource PhoneForegroundBrush}"  
  13.     SupportedOrientations="Portrait" Orientation="Portrait"  
  14.     shell:SystemTray.IsVisible="True">  
  15.   
  16.     <!--LayoutRoot 是包含所有页面内容的根网格-->  
  17.     <Grid x:Name="LayoutRoot" Background="Transparent">  
  18.         <Grid.RowDefinitions>  
  19.             <RowDefinition Height="Auto"/>  
  20.             <RowDefinition Height="*"/>  
  21.         </Grid.RowDefinitions>  
  22.   
  23.         <!--TitlePanel 包含应用程序的名称和页标题-->  
  24.         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">  
  25.             <TextBlock x:Name="ApplicationTitle" Text="我的应用程序" Style="{StaticResource PhoneTextNormalStyle}"/>  
  26.             <TextBlock x:Name="PageTitle" Text="应用程序设置" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>  
  27.         </StackPanel>  
  28.   
  29.         <!--ContentPanel - 在此处放置其他内容-->  
  30.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">  
  31.             <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,50,0,0" Name="textBlock1" Text="姓名:" VerticalAlignment="Top" />  
  32.             <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,116,0,0" Name="textBlock2" Text="职业:" VerticalAlignment="Top" />  
  33.             <TextBox Height="72" HorizontalAlignment="Left" Margin="116,25,0,0" Name="txtName" Text="" VerticalAlignment="Top" Width="292" />  
  34.             <TextBox Height="72" HorizontalAlignment="Left" Margin="116,104,0,0" Name="txtPos" Text="" VerticalAlignment="Top" Width="292" />  
  35.         </Grid>  
  36.     </Grid>  
  37.    
  38. </phone:PhoneApplicationPage>  


 

[csharp] view plaincopyprint?
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Net;  
  5. using System.Windows;  
  6. using System.Windows.Controls;  
  7. using System.Windows.Documents;  
  8. using System.Windows.Input;  
  9. using System.Windows.Media;  
  10. using System.Windows.Media.Animation;  
  11. using System.Windows.Shapes;  
  12. using Microsoft.Phone.Controls;  
  13.   
  14. using System.IO.IsolatedStorage;  
  15.   
  16. namespace PhoneApp1  
  17. {  
  18.     public partial class MainPage : PhoneApplicationPage  
  19.     {  
  20.         // 声明一个IsolatedStorageSettings变量。  
  21.         IsolatedStorageSettings MySetting = IsolatedStorageSettings.ApplicationSettings;  
  22.         // 构造函数  
  23.         public MainPage()  
  24.         {  
  25.             InitializeComponent();  
  26.         }  
  27.   
  28.         protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)  
  29.         {  
  30.             base.OnNavigatedFrom(e);  
  31.             MySetting["name"] = this.txtName.Text;  
  32.             MySetting["pos"] = txtPos.Text;  
  33.             // 保存  
  34.             MySetting.Save();  
  35.         }  
  36.   
  37.         protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)  
  38.         {  
  39.             base.OnNavigatedTo(e);  
  40.             // 当导航到页面,读入数据。  
  41.             if (MySetting.Contains("name"))  
  42.             {  
  43.                 txtName.Text = MySetting["name"as string;  
  44.             }  
  45.             if (MySetting.Contains("pos"))  
  46.             {  
  47.                 txtPos.Text = MySetting["pos"as string;  
  48.             }  
  49.         }  
  50.     }  
  51. }  



 

好的,看,是不是很简单?

隔离存储就吹到这儿了,从下一篇文章开始,我们不玩抽象,我们来一些“所见即得”的东东,一起当一回山寨画家,从下一节开始,我们一起讨论图形、画刷、绘图相关的内容。

转载于:https://www.cnblogs.com/songtzu/archive/2012/07/24/2607126.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作407-启动vue项目出现Module build failed (from ./node_modules/sass-loader/dist/cjs.js): ValidationError: I

This dependency was not found:* !!vue-style-loader!css-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-ef68022e","scoped":true,"hasInlineConf…

go 函数名之前括号中的内容_2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数

1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数)&#xff0c;有助于提高代码可读性和可维护性。在 Go 语言中&#xff0c;函数可以分为两种&#xff1a;带有名字的普通函数没有名字的匿名函数由于 Go…

百度地图gif图标_华为手机误删照片怎么找回?手机怎么快速制作GIF动图

对于华为手机&#xff0c;国内的很多人群都是非常喜欢的&#xff0c;特别是哪些花粉们简直就是疯狂&#xff0c;但是当我们使用华为手机误删了照片应该怎么办&#xff1f;如何才能找回误删的照片&#xff1f;误删手机照片怎么找回&#xff1f;不用担心&#xff0c;下面就让我们…

Envi 4.7 破解安装及下载(转)

Envi 4.7下载&#xff1a;http://dl.dbank.com/c0xlwdke94安装Envi4.7时候如果提示需要license&#xff0c;那么按照如下步骤操作&#xff1a;1. 在License wizard 中选择"Install a license you have received"&#xff0c;点击"Next"2. 在Select a licen…

工作408- Module build failed (from ./node_modules/sass-loader/dist/cjs.js)

发现版本不对&#xff0c;于是执行npm uninstall sass-loadernpm install sass-loader7.1.0 --savenpm install style-loadernpm install node-sass安装对应的版本&#xff0c;搞定。

mysql 获取结果_【原创】7. MYSQL++中的查询结果获取(各种Result类型)

在本节中&#xff0c;我将首先介绍MYSQL中的查询的几个简单例子用法&#xff0c;然后看一下mysqlpp::Query中的几个与查询相关的方法原型(重点关注返回值)&#xff0c;最后对几个关键类型进行解释。1. MYSQL的查询实例下面的两个例子分别是STORE(所有数据一次性从服务器拉到本地…

Error loading WebappClassLoader

Error: 严重: Error loading WebappClassLoader context: /oa.myeclipse.bak delegate: false repositories: /WEB-INF/classes/----------> Parent Classloader:org.apache.catalina.loader.StandardClassLoader3bc473 org.apache.struts.action.ActionServletjava.l…

python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...

一、python内置函数abs()求绝对值例子print(abs(-2))all()把序列中每一个元素做布尔运算&#xff0c;如果全部都是true&#xff0c;就返回true,但是如果是空字符串、空列表也返回true例子print(all([1,2,1,]))输出结果False例子2print(all())输出结果Trueany()把序列中每一个元…

Rds基于mysql开发的_开发云数据库RDS MYSQL版讲解

前言 这篇文章适合所有的 C# 开发新手、老鸟以及想准备学习开发 C# 的程序猿。.NET Core是一个开源通用的开发框架&#xff0c;支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime&#xff0c; 使用 C# 编写 serverless 函数, 详情见官方文档&#xff1a;C# 函数入口. 在…

C# Action

C# Action 的一般用法 最近在看汤姆大叔的JavaScript教程&#xff0c;总结的相当好&#xff0c;可惜自己功力尚浅不能把学到的融会贯通。看过今天大叔发的一篇博文&#xff0c;在js的回调函数中想到了一点关于Action的用法。 发一段简单不能在简单的程序 1 class Program 2 …

浮动div,回到顶部

<div style"height: 5000px">这是顶部</div> <div id"FloatDIV" style"position: absolute;top: 0px; z-index:9999; background: #fff000;cursor: pointer"onclick"window.scrollTo(0,0);">回到顶部 </div>&…

通过图片 找到桌面相同图片区域坐标_【Axure RP9原型案例】京东与淘宝的商品图片是如何被放大的...

摘要&#xff1a;在电商的商品详情页中我们经常会看到图片放大器的运用&#xff0c;我们以京东商品详情页为例来制作这样的原型效果。案例中综合运用了鼠标移入事件、鼠标移动事件&#xff0c;元件的移动、元件的显示/隐藏等交互动作。京东示意图观察交互首先我们观察京东详情页…

ref的mysql_ref:Mysql授权远程登陆

在Windows环境上操作。步骤如下&#xff1a;1. 打开cmd窗口&#xff0c;登陆mysqlmysql -uroot -p1234562.使用mysql数据库use mysql3.查看结果中host一行中是否有%,如果有%&#xff0c;此行用户名允许远程登录。下图所示&#xff0c;白色框中表示允许远程登录的账号&#xff1…

每当处于窘境时,想想当初坚持的理由

突然间想起了关于信仰的话题&#xff0c;自己不想很多伟大和强悍的人&#xff0c;有着坚忍不催的信仰&#xff0c;很多事想做就不顾后果的做了&#xff0c;常常会弄得最后一塌糊涂甚至后悔莫及&#xff0c;回想伴着ACM一路渴磕磕碰碰&#xff0c;走走停停&#xff0c;最终却是一…

mysql 5.7.4 m14_win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)

1. mysql-5.7.4-m14-winx64.zip下载官方网站下载地址&#xff1a;http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17-winx64.zip2、解压到D:\mysql.(路径自己指定)3、在D:\mysql\mysql-5.7.4-m14-winx64下新建my.ini配置文件内容如下&#xff1a;#################…

python中的sorted是什么意思_python中sort与sorted区别

1、sort()函数 (只对list有用)sort(...)L.sort(key None,reverseFalse)key 函数 这个函数会从每个元素中提取一个用于比较的关键字。默认是Nonereverse True/False (默认是False升序&#xff1b;True&#xff1a;降序)作用&#xff1a;对原序列进行排序&#xff0c;也就是直…