在 WPF 应用程序中保存窗口位置和大小的最佳方法是什么?
目前,我正在保存 WPF 应用程序的窗口大小和位置。以下是我处理的事件:
- SourceInitialized : 保存的信息加载到窗口
- WindowClosing : 当前信息保存到后备存储
(我从一个例子中复制了这个)。
问题是,当窗口最小化并恢复时,会检索上次 WindowClosing 的设置。
现在,StateChanged 事件在窗口最小化后触发,所以它似乎不是我需要的。
谢谢
最佳答案
帮您自己和您的用户一个忙,使用 LocationChanged事件和 SizeChanged事件以保存当时的设置。没有什么比如果进程异常退出并且设置没有被保存的应用程序失忆更烦人的了(咳咳……explorer……咳咳……)
然后在保存设置之前检查以确保 WindowState == Normal。显然保存最小化或最大化窗口的位置是没有意义的。
至于何时加载设置,你可以在 InitializeComponent 调用后在构造函数中执行,也可以使用 Initialized 事件。没有真正的理由使用 SourceInitialized 事件,除非您直接使用 HWND 做一些不必要的事情。
关于wpf - 保存 WPF 窗口和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846662/