Windows Phone 7 便捷记事本实例

简介:

 

 

 

这是一个很简单的记事本,利用了本地存储实时记录下你写下的内容,退出程序的时候将自动保存记事本的内容。下面的工具条是放大和缩小字体的功能。

用自定义的QuickNotesSettings类来保存记事本的内容和字体的大小,同时封装了记事本的加载方法和保存方法。

 


 
 
  1. using System;  
  2. using System.IO.IsolatedStorage;  
  3. using System.Windows;  
  4.  
  5. namespace QuickNotes  
  6. {  
  7.     public class QuickNotesSettings  
  8.     {  
  9.         public QuickNotesSettings()  
  10.         {  
  11.             this.Text = "";  
  12.             this.FontSize = (double)Application.Current.Resources["PhoneFontSizeMediumLarge"];  
  13.         }  
  14.  
  15.         public string Text { set; get; }  
  16.         public double FontSize { set; get; }  
  17.         //静态方法获取本地存储的记事本内容  
  18.         public static QuickNotesSettings Load()  
  19.         {  
  20.             IsolatedStorageSettings isoSettings = IsolatedStorageSettings.ApplicationSettings;  
  21.             QuickNotesSettings settings;  
  22.  
  23.             if (!isoSettings.TryGetValue<QuickNotesSettings>("settings", out settings))  
  24.                 settings = new QuickNotesSettings();  
  25.  
  26.             return settings;  
  27.         }  
  28.         //保存到本地存储中  
  29.         public void Save()  
  30.         {  
  31.             IsolatedStorageSettings isoSettings = IsolatedStorageSettings.ApplicationSettings;  
  32.             isoSettings["settings"] = this;//保存的就是这个类的实例  
  33.         }  
  34.     }  

xaml文件

 


 
 
  1. <!--LayoutRoot contains the root grid where all other page content is placed--> 
  2.     <Grid x:Name="LayoutRoot" Background="Transparent"> 
  3.         <Grid.RowDefinitions> 
  4.             <RowDefinition Height="Auto"/> 
  5.             <RowDefinition Height="*"/> 
  6.         </Grid.RowDefinitions> 
  7.  
  8.         <!--TitlePanel contains the name of the application and page title--> 
  9.         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 
  10.             <TextBlock x:Name="ApplicationTitle" Text="Quick Notes" Style="{StaticResource PhoneTextNormalStyle}"/> 
  11.         </StackPanel> 
  12.  
  13.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
  14.             <TextBox Name="txtbox" 
  15.                      TextWrapping="Wrap" 
  16.                      AcceptsReturn="True" 
  17.                      VerticalScrollBarVisibility="Auto" 
  18.                      TextChanged="OnTextBoxTextChanged" /> 
  19.         </Grid> 
  20.     </Grid> 
  21.       
  22.     <phone:PhoneApplicationPage.ApplicationBar> 
  23.         <shell:ApplicationBar> 
  24.             <!--缩小--> 
  25.             <shell:ApplicationBarIconButton IconUri="/Images/littleletter.icon.png"   
  26.                                             Text="smaller font" 
  27.                                             Click="OnAppBarSmallerFontClick" /> 
  28.             <!--放大--> 
  29.             <shell:ApplicationBarIconButton IconUri="/Images/bigletter.icon.png"   
  30.                                             Text="larger font" 
  31.                                             Click="OnAppBarLargerFontClick" /> 
  32.         </shell:ApplicationBar> 
  33.     </phone:PhoneApplicationPage.ApplicationBar> 

对应的cs后台文件

 


 
 
  1. using System;  
  2. using System.Windows;  
  3. using System.Windows.Controls;  
  4. using Microsoft.Phone.Controls;  
  5.  
  6. namespace QuickNotes  
  7. {  
  8.     public partial class MainPage : PhoneApplicationPage  
  9.     {  
  10.         QuickNotesSettings appSettings = (Application.Current as App).AppSettings;  
  11.           
  12.         public MainPage()  
  13.         {  
  14.             InitializeComponent();  
  15.  
  16.             txtbox.Text = appSettings.Text;  
  17.             txtbox.FontSize = appSettings.FontSize;  
  18.         }  
  19.         //即时保存记事本的内容到,本地存储中去  
  20.         void OnTextBoxTextChanged(object sender, TextChangedEventArgs args)  
  21.         {  
  22.             appSettings.Text = txtbox.Text;  
  23.         }  
  24.         //缩小字体  
  25.         void OnAppBarSmallerFontClick(object sender, EventArgs args)  
  26.         {  
  27.             txtbox.FontSize = Math.Max(12, txtbox.FontSize - 1);  
  28.             appSettings.FontSize = txtbox.FontSize;  
  29.         }  
  30.         //放大字体  
  31.         void OnAppBarLargerFontClick(object sender, EventArgs args)  
  32.         {  
  33.             txtbox.FontSize = Math.Min(48, txtbox.FontSize + 2);  
  34.             appSettings.FontSize = txtbox.FontSize;  
  35.         }  
  36.     }  

app.xaml.cs主程序文件修改

 


 
 
  1. ……  
  2. public QuickNotesSettings AppSettings { set; get; }  
  3.         public PhoneApplicationFrame RootFrame { get; private set; }  
  4.  
  5.         public App()  
  6.         {  
  7.  
  8.             UnhandledException += Application_UnhandledException;  
  9.             InitializeComponent();  
  10.             InitializePhoneApplication();  
  11.         }  
  12.  
  13.         private void Application_Launching(object sender, LaunchingEventArgs e)  
  14.         {  
  15.             AppSettings = QuickNotesSettings.Load();  
  16.         }  
  17.  
  18.         private void Application_Activated(object sender, ActivatedEventArgs e)  
  19.         {  
  20.             AppSettings = QuickNotesSettings.Load();  
  21.         }  
  22.  
  23.         private void Application_Deactivated(object sender, DeactivatedEventArgs e)  
  24.         {  
  25.             AppSettings.Save();  
  26.         }  
  27.  
  28.         private void Application_Closing(object sender, ClosingEventArgs e)  
  29.         {  
  30.             AppSettings.Save();  
  31.         }  
  32. …… 

 


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1079152


相关文章
|
关系型数据库 MySQL 数据库
达梦(DM)2、创建数据库实例(Windows篇)(上)
上篇文章,我们已经成功安装了达梦数据库,下面我们一起来看看怎么使用达梦数据库吧
3643 0
达梦(DM)2、创建数据库实例(Windows篇)(上)
|
11月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
188 0
|
安全 Windows
【Azure云服务 Cloud Service】Cloud Service的实例(VM)中的服务描述Software Protection 与 Windows Defender, 如何设置Windows Defender Antivirus服务
【Azure云服务 Cloud Service】Cloud Service的实例(VM)中的服务描述Software Protection 与 Windows Defender, 如何设置Windows Defender Antivirus服务
159 4
|
安全 Windows
【Azure 云服务】当Windows系统发布新的安全漏洞后,如何查看Azure云服务(Cloud Service)的实例是否也更新了安全补丁呢?
【Azure 云服务】当Windows系统发布新的安全漏洞后,如何查看Azure云服务(Cloud Service)的实例是否也更新了安全补丁呢?
117 0
|
消息中间件 监控 数据可视化
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
influxDB的官网下载地址 https://portal.influxdata.com/downloads/打开以后,如下图所示,可以选择版本号,以及平台。此处咱们选择windows平台。不过此处没有实际的可以下载的地方,着实比较过分,不过咱们可以另辟蹊径。
1896 0
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
|
弹性计算 缓存 网络安全
云服务器 ECS产品使用问题之远程桌面无法连接到Windows实例,该如何排查
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
弹性计算 编解码 监控
ECS实例问题之ECS实例无法选择Windows操作系统如何解决
ECS实例指的是在阿里云ECS服务中创建的虚拟计算环境,用户可在此环境中运行应用程序和服务;本合集将介绍ECS实例的创建、管理、监控和维护流程,及常见问题处理方法,助力用户保障实例的稳定运行。
|
弹性计算 Windows
Windows系统的ECS实例如何配置RAID10
Windows系统的ECS实例如何配置RAID10
|
弹性计算 安全 数据安全/隐私保护
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
2345 0
|
XML Arthas Java
Windows【工具 04】WinSW官网使用说明及实例分享(将exe和jar注册成服务)实现服务器重启后的服务自动重启
Windows【工具 04】WinSW官网使用说明及实例分享(将exe和jar注册成服务)实现服务器重启后的服务自动重启
1165 0