ApplicationSettingsBase: 关掉WPF 窗口后,再次打开,显示在上次关闭的位置
体验比较好的设计,用户再次打开程序的时候,还原到上次关闭前的位置。
当然了,用户上次设置的颜色,字体等信息,都可以用同样的办法搞定。
1 /// <summary> 2 /// Interaction logic for MainWindow.xaml 3 /// </summary> 4 public partial class MainWindow : Window 5 { 6 WindowApplicationSettings settings = new WindowApplicationSettings(); 7 8 public MainWindow() 9 { 10 InitializeComponent(); 11 this.Loaded += new RoutedEventHandler(MainWindow_Loaded); 12 this.Closing += new CancelEventHandler(MainWindow_Closing); 13 } 14 15 void MainWindow_Closing(object sender, CancelEventArgs e) 16 { 17 settings.WinText = tb.Text; 18 settings.WinLocation = new Point(this.Left, this.Top); 19 settings.Save(); 20 } 21 22 void MainWindow_Loaded(object sender, RoutedEventArgs e) 23 { 24 settings.Reload(); 25 tb.Text = settings.WinText; 26 this.Left = settings.WinLocation.X; 27 this.Top = settings.WinLocation.Y; 28 } 29 } 30 31 /// <summary> 32 /// Helper class used to save the settings in configuration file 33 /// </summary> 34 public class WindowApplicationSettings : ApplicationSettingsBase 35 { 36 [UserScopedSettingAttribute()] 37 public String WinText 38 { 39 get { return (String)this["WinText"]; } 40 set { this["WinText"] = value; } 41 } 42 43 [UserScopedSettingAttribute()] 44 [DefaultSettingValueAttribute("0, 0")] 45 public Point WinLocation 46 { 47 get { return (Point)(this["WinLocation"]); } 48 set { this["WinLocation"] = value; } 49 } 50 51 }