保存WPF窗口和位置

moo*_*ogs 3 windows wpf

在WPF应用程序中保存窗口位置和大小的最佳方法是什么?

目前,我正在保存WPF应用程序的窗口大小和位置.以下是我处理的事件:

  1. SourceInitialized:已保存的信息已加载到窗口中
  2. WindowClosing:当前信息保存到后备存储

(我从一个例子中复制了这个).

问题是,当窗口最小化并恢复时,将检索最后一个WindowClosing的设置.

现在,StateChanged事件在窗口最小化后触发,所以它似乎不是我需要的.

谢谢

Jos*_*osh 9

帮助自己和用户,并使用LocationChanged事件和SizeChanged事件来保存当时的设置.如果进程异常退出并且设置没有得到保存(咳嗽......探险家......咳嗽......),那么没有什么比得到健忘症的应用程序更烦人了.

然后在保存设置之前检查以确保WindowState == Normal.显然,保存最小化或最大化窗口的位置毫无意义.

至于何时加载设置,您可以在InitializeComponent调用之后在构造函数中执行,或者您可以使用Initialized事件.没有真正的理由使用SourceInitialized事件,除非你直接对HWND做了一些不必要的事情.