设为首页 收藏本站
查看: 615|回复: 0

《101 Windows Phone 7 Apps》读书笔记-NOTEPAD

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-5-12 12:23:52 | 显示全部楼层 |阅读模式
  课程内容
  
Ø 读写文件

    
      Notepad提供了快速、高效的记录手段,它具有以下的特点:
  Ø 自动保存,使得速记变得快速而简单。
  Ø 提供每条笔记的快速预览。
  Ø 可自定义每条笔记的背景色、前景色和字体大小。
  Ø 可通过Email发送笔记文件。
      这听上去熟悉吗?应该够熟悉吧,因为对于用户来说,除了主密码和相关的加密算法,这个应用与之前的Passwords & Secrets几乎如出一辙。但是,在实现过程中,有一个不同之处显得非常重要,这也正是本章需要讲述的。因为Notepad存储的记录相对于Passwords & Secrets来说,需要更加长久一点。每条记录都以独立文件的形式存放在隔离存储空间中,这使得应用程序可以根据需求加载记录,而非每次在应用程序启动/激活时全部加载(在应用程序设置中是这样的)。
      本章突出Notepad与Passwords & Secrets应用程序中代码之间的差异,展示共同使用的设置页面的设计。
    
  The Main Page
      Notepad的主页面和之前Passwords & Secrets的主页面很像,只是少了LoginControl这个自定义空间和相关的逻辑。一开始,应用程序栏就具有一个“new”按钮,因为任何情况下,都可以增加新的记录。
  注意:
  ?在OnNavigatedTo中,通过把页面的数据内容设置为记录列表,完成了list box的数据填充。
  ?本章最后讲述的Note类,为了适应以文件为基础的存储方式,与上一章的略微有所不同。在NewButton_Click事件处理程序中,我们可以发现它现在具有Filename属性,它被用来指向包含数据的文件。在应用程序的界面中,文件名是不会出现的;从内部来讲,每条记录只要知道去哪里获取数据就可以了。因此,在创建一条新记录时,它被赋予一个唯一的文件名,这要归功于Guid.NewGuid方法,它为所有的实际需求返回全局唯一标识符(GUID)。
    
  The Details Page
  Details页面和Passwords & Secrets一样,显示记录的内容,允许用户对其进行编辑、删除操作,改变设置,或者通过Email发送记录内容。除了应用程序栏的IsVisible属性设置为False之外,该页面的XAML代码与前一章的DetailsPage.xaml相同,因为LoginControl显示的时候,它没有必要隐藏。
  注意:
  ? 在OnNavigatedFrom函数中,text box中的内容通过SaveContent方法保存到一个文件中,这会在本章后面进行详述。每条记录的Title属性是在这个时候进行设置的,而并不是在获取时动态设置的,因为这样做可以不用读取每个文件来显示每个title的值。否则的话,把列表内容保留在主页面会导致应用程序需要每个文件的内容,并且丧失了将记录存放于文件的优势。
  ? 归功于Note类中定义的GetContent方法,记录的内容会在OnNavigatedTo函数中立即显示。
  ? 在DeleteButton_Click函数中,DeleteContent方法确保记录被删除时,其存储的文件也同时被删除。
    
  The Note Class
  ? 之前提及过,Title属性目前是普通的read-write属性,是动态可变的,而非read-only。
  ? 为保存一个新的文件,SaveContent方法首先调用IsolatedStorageFile. GetUserStoreForApplication。这是在任何代码中直接与隔离存储空间文件系统交互的第一步。IsolatedStoreFile返回的实例中包含创建、枚举、打开和删除文件及文件夹的方法。CreateFile方法一旦被调用,SaveContent就会使用StreamWriter把传入的字符串写入stream中。
  ? GetContent 和 DeleteContent与SaveContent类似,利用了IsolatedStorageFile中的另外三个方法:FileExists, OpenFile, 和 DeleteFile。为了在读写大文件的时候,保持用户界面的可交互性,可以使用第11章“XAML Editor”中介绍的BackgroundWorker。
  ? 在管理文件时,我们有可能使用IsolatedStorageFile.GetFileNames方法来枚举并显示文件,但该方法存在一些问题,比如:
  ? 隔离存储空间的API并没有包含发现创建/修改文件日期的方法。因此,通过这种方法来进行文件排序(而不使用默认的字符排序)会需要存储额外的信息(本应用存放于Note类中)。
  ? 如果我们使用隔离存储空间的应用设置,那么列表会包含一个额外的文件。这些信息会被保存在一个叫做ApplicationSettings的XML文件中,该文件位于应用程序隔离存储空间的根目录。虽然我们可以手动将其过滤掉,但不能确保将来不会有其他特殊的文件。
  ? 和Windows一样,文件名也有一定的字符限制(例如,不能包含冒号或者问号)。如果将文件名作为用户可见并可以编辑的标签,那么我们需要确保没有引入无效的字符。
    
  The Settings Page
DSC0000.png

图22.1 设置页面展示了每条记录的设置,允许将其应用到以后新建的记录中

      设置页面如图22.1所示,允许对记录的前景色、背景色和字体大小进行自定义。虽然这些设置只应用于当前的记录(被设置为Note实例的属性),但是用户可以通过使用check box将选择的设置自动应用到以后新建的记录中。
      为了融合color picker,把一个键值直接写入隔离存储空间的应用设置中,这里使用了TempScreenColor 和 TempTextColor。然后,这些值被用于OnNavigatedTo函数的当前记录属性中。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-66252-1-1.html 上篇帖子: Windows 7 工行老版金邦达U盾安装解决方案 下篇帖子: WinHEC见闻记之Windows 7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表