Windows8 Metro开发 (04) : 保存/读取本地应用程序设置
默认显示的字体大小为24,我们将其字体改为28后返回到主页面,然后重新进入该页面。你会发现字体的大小变为28了。重新启动程序进入该页面,你会发现字体的大小仍然为28。下拉列表的选中项与字体大小是时刻对应的.
实现方法如下:1.每次进入该页面的时候,首先获取之前保存的字体大小a.没有获取到将字体大小设为默认值b.获取到将字体大小设为获取的值2.用户改变字体大小时,保存改变后的值private static ObservableCollection<Type> GetTypes() { //添加要序列化的类型 if (_Types == null) { _Types = new ObservableCollection<Type>(); _Types.Add(typeof(People)); _Types.Add(typeof(Student)); _Types.Add(typeof(Coder)); } return _Types; }其中_Types是全局对象ObservableCollection<Type>。至此,数据就保存好了。
读取数据读取数据也就是进行反序列化,我们可以得到之前保存的对象集合,其数据类型是List<People>,然后我们将该对象集合交给ListView显示即可。public static async Task<object> XMLDeserialize(Type type) { StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder; string fileName = "LocalDataPage-list_data.xml"; StorageFile newFile = await folder.GetFileAsync(fileName); Stream newFileStream = await newFile.OpenStreamForReadAsync(); //进行反序列化 DataContractSerializer ser = new DataContractSerializer(type, GetTypes()); object instance = ser.ReadObject(newFileStream); newFileStream.Dispose(); return instance; }可以看到读取的数据与之前保存的相同.我们的目的达到了。
程序运行的效果如下:1.随机显示学生和程序员信息:2.保存数据保存文件的内容
<ArrayOfPeople xmlns="http://schemas.datacontract.org/2004/07/Win8_Study.Pages" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><People i:type="Student"><Age>14</Age><Name>学生1</Name><Score>66</Score></People><People i:type="Coder"><Age>24</Age><Name>程序员2</Name><WorkYears>4</WorkYears></People><People i:type="Student"><Age>7</Age><Name>学生3</Name><Score>86</Score></People><People i:type="Coder"><Age>23</Age><Name>程序员4</Name><WorkYears>1</WorkYears></People><People i:type="Coder"><Age>25</Age><Name>程序员5</Name><WorkYears>2</WorkYears></People></ArrayOfPeople>3.清除数据并读取之前保存的数据显示效果同第一张图.专栏网址:http://blog.csdn.net/zyc13701469860/article/details/8194090