wpf - 保存 WPF 窗口和位置

标签 wpf windows

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

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

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

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

问题是,当窗口最小化并恢复时,会检索上次 WindowClosing 的设置。

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

谢谢

最佳答案

帮您自己和您的用户一个忙,使用 LocationChanged事件和 SizeChanged事件以保存当时的设置。没有什么比如果进程异常退出并且设置没有被保存的应用程序失忆更烦人的了(咳咳……explorer……咳咳……)

然后在保存设置之前检查以确保 WindowState == Normal。显然保存最小化或最大化窗口的位置是没有意义的。

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

关于wpf - 保存 WPF 窗口和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846662/

相关文章:

c++ - 互斥体超时还需要释放吗?

c++ - 在x64模式下从C++/CLI调用MASM PROC会产生意外的性能问题

WPF 加载动画

c# - 两个碰撞的圆圈,无法将公式转换为代码

wpf - 如何使用 WPF 中的资源图标?

windows - 有没有办法检测系统时钟是否已在 Windows 中向后更改?

c++ - 如何在不链接 kernel32.dll 和 ntdll.dll 的情况下运行 PE 镜像

python - 在 python mkdtemp 中处理 unicode 用户名

WPF:使用代码进行数据绑定(bind)

c# - 环绕面板上的 WPF 滚动条变灰