darkpoon 发表于 2015-5-10 12:02:49

Windows Phone 7 便捷记事本实例


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




using System;
using System.IO.IsolatedStorage;
using System.Windows;
namespace QuickNotes
{
    public class QuickNotesSettings
    {
      public QuickNotesSettings()
      {
            this.Text = "";
            this.FontSize = (double)Application.Current.Resources["PhoneFontSizeMediumLarge"];
      }
      public string Text { set; get; }
      public double FontSize { set; get; }
      //静态方法获取本地存储的记事本内容
      public static QuickNotesSettings Load()
      {
            IsolatedStorageSettings isoSettings = IsolatedStorageSettings.ApplicationSettings;
            QuickNotesSettings settings;
            if (!isoSettings.TryGetValue("settings", out settings))
                settings = new QuickNotesSettings();
            return settings;
      }
      //保存到本地存储中
      public void Save()
      {
            IsolatedStorageSettings isoSettings = IsolatedStorageSettings.ApplicationSettings;
            isoSettings["settings"] = this;//保存的就是这个类的实例
      }
    }
}
  xaml文件





   
      
            
            
      
      
      
            
      
      
            
      
   
   
      
            
            
            
            
      
   
  对应的cs后台文件




using System;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Phone.Controls;
namespace QuickNotes
{
    public partial class MainPage : PhoneApplicationPage
    {
      QuickNotesSettings appSettings = (Application.Current as App).AppSettings;
      public MainPage()
      {
            InitializeComponent();
            txtbox.Text = appSettings.Text;
            txtbox.FontSize = appSettings.FontSize;
      }
      //即时保存记事本的内容到,本地存储中去
      void OnTextBoxTextChanged(object sender, TextChangedEventArgs args)
      {
            appSettings.Text = txtbox.Text;
      }
      //缩小字体
      void OnAppBarSmallerFontClick(object sender, EventArgs args)
      {
            txtbox.FontSize = Math.Max(12, txtbox.FontSize - 1);
            appSettings.FontSize = txtbox.FontSize;
      }
      //放大字体
      void OnAppBarLargerFontClick(object sender, EventArgs args)
      {
            txtbox.FontSize = Math.Min(48, txtbox.FontSize + 2);
            appSettings.FontSize = txtbox.FontSize;
      }
    }
}
  app.xaml.cs主程序文件修改




……
public QuickNotesSettings AppSettings { set; get; }
      public PhoneApplicationFrame RootFrame { get; private set; }
      public App()
      {
            UnhandledException += Application_UnhandledException;
            InitializeComponent();
            InitializePhoneApplication();
      }
      private void Application_Launching(object sender, LaunchingEventArgs e)
      {
            AppSettings = QuickNotesSettings.Load();
      }
      private void Application_Activated(object sender, ActivatedEventArgs e)
      {
            AppSettings = QuickNotesSettings.Load();
      }
      private void Application_Deactivated(object sender, DeactivatedEventArgs e)
      {
            AppSettings.Save();
      }
      private void Application_Closing(object sender, ClosingEventArgs e)
      {
            AppSettings.Save();
      }
……
页: [1]
查看完整版本: Windows Phone 7 便捷记事本实例