保存窗口位置状态的示例

更新:2007 年 11 月

此示例演示如何保存 Window 的大小、位置和状态,以确保 Window 在与关闭位置相同的位置打开。此外,此示例还支持多监视器。

此示例演示 Windows Presentation Foundation 的特定功能,因此未遵循应用程序开发的最佳做法。有关 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 应用程序开发的最佳做法的全面介绍,请相应地参考以下主题:

辅助功能 - 辅助功能最佳方案

本地化 - WPF 全球化和本地化概述

性能 - 优化 WPF 应用程序性能

安全 - Windows Presentation Foundation 安全性

Download sample

生成示例

  • 安装 Windows 软件开发工具包 (SDK) 并打开其生成环境命令窗口。在“开始”菜单上,指向“所有程序”、“Microsoft Windows SDK”,然后单击“CMD Shell”。

  • 将示例(通常位于软件开发工具包 (SDK) 文档中)下载到您的硬盘。

  • 若要从生成环境命令窗口生成示例,请转到示例的源目录。在命令提示符处,键入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中生成示例,请加载示例解决方案或项目文件,然后按 Ctrl+Shift+B。

运行示例

  • 若要从生成环境命令窗口运行已编译的示例,请执行示例源代码文件夹下包含的 Bin\Debug 或 Bin\Release 文件夹中的 .exe 文件。

  • 若要在 Visual Studio 中调试运行已编译的示例,请按 F5。

备注

此示例演示了如何保存 Window 的大小、位置和状态,以使 Window 在与关闭位置相同的位置打开。此外,此示例还支持多监视器。这意味着,如果 Window 关闭时所在的监视器断开连接,Window 将改为在已连接的监视器上显示。

这要求使用下面的 Win32 API(来自 User32.dll):

WINDOWPLACEMENT:用来存储窗口的大小、位置和状态(参见 WINDOWPLACEMENT Structure(WINDOWPLACEMENT 结构))。

GetWindowPlacement:用来在窗口关闭之前检索它的当前 WINDOWPLACEMENT 数据(参见 GetWindowPlacement Function(GetWindowPlacement 函数))。

SetWindowPlacement:用来在窗口打开时还原 WINDOWPLACEMENT 数据(参见 SetWindowPlacement Function(SetWindowPlacement 函数))。

WINDOWPLACEMENT 结构使用 Microsoft .NET Framework对强类型应用程序设置的支持来物理地存储在磁盘上(参见 Application Settings Overview(应用程序设置概述))。

请参见

参考

Window