[This readme is a partial copy of the sample's topic in the SDK documentation.]

This sample illustrates how to save the size, location, and state of a Window so the Window opens in the same position it was closed. Furthermore, this sample is multi-monitor aware.

Best Practices

This sample demonstrates a specific feature of the Windows Presentation Foundation and, consequently, does not follow application development best practices. For comprehensive coverage of Windows Presentation Foundation (WPF) and Microsoft .NET Framework application development best practices, refer to the following as appropriate:

Accessibility - Accessibility Best Practices

Security - WPF Security

Localization - WPF Globalization and Localization Overview

Building the Sample

  • Install the Windows Software Development Kit (SDK) and open its build environment command window. On the Start menu, point to All Programs, Microsoft Windows SDK, and then click CMD Shell.

  • Download the sample, usually from the software development kit (SDK) documentation, to your hard disk drive.

  • To build the sample from the build environment command window, go to the source directory of the sample. At the command prompt, type MSBUILD.

  • To build the sample in Microsoft Visual Studio 2005, load the sample solution or project file and then press CTRL+SHIFT+B.

Running the Sample

  • To run the compiled sample from the build environment command window, execute the .exe file in the Bin\Debug or Bin\Release folder contained under the sample source code folder.

  • To run the compiled sample with debugging in Visual Studio 2005, press F5.

Remarks

This sample illustrates how to save the size, location, and state of a Window so the Window opens in the same position it was closed. Furthermore, this sample is multi-monitor aware, which means that if the monitor on which the Window was closed is disconnected, the Window is shown on a connected monitor instead.

This requires using the following Win32 APIs (from User32.dll):

WINDOWPLACEMENT: To store window size, location, and state (see WINDOWPLACEMENT Structure).

GetWindowPlacement: To retrieve the current WINDOWPLACEMENT data for the window before it closes (see GetWindowPlacement).

SetWindowPlacement: To restore the WINDOWPLACEMENT data when the window opens (see SetWindowPlacement).

The WINDOWPLACEMENT structure is physically stored on disk using the Microsoft .NET Framework version 3.0 support for strongly-typed application settings (see Application Settings Overview).