Пример сохранения состояния и расположения окна
Обновлен: Ноябрь 2007
В этом примере описывается способ сохранения размера, расположения и состояния окна Window чтобы гарантировать, что окно Window открывалось в том же расположении, в каком оно было закрыто. Кроме того, в этом примере рассматривается возможность сохранения информации о расположении окон на нескольких мониторах.
В этом примере демонстрируется конкретная функциональная возможность Windows Presentation Foundation, и поэтому рекомендации по разработке приложений не соблюдаются. Более полное рассмотрение Windows Presentation Foundation (WPF) и рекомендации по тактике разработки приложений Microsoft .NET Framework см. в следующих разделах:
Специальные возможности: Рекомендации по специальным возможностям
Локализация: Общие сведения о глобализации и локализации WPF
Производительность: Улучшение производительности приложений WPF
Безопасность: Безопасность Windows Presentation Foundation
Построение примера
Установите пакет средств разработки программного обеспечения для Windows и откройте окно командной строки среды его построения. В меню "Пуск" выделите пункты "Все программы", "Пакет SDK для Microsoft Windows", а затем "Оболочки CMD".
Загрузите образец, как правило из документации пакета SDK, на жесткий диск.
Чтобы построить образец из окна командной строки среды построения, перейдите в исходный каталог образца. В командной строке введите MSBUILD.
Чтобы построить образец в Microsoft Visual Studio, загрузите решение образца или файл проекта и нажмите сочетание клавиш CTRL + SHIFT + B.
Выполнение примера
Для запуска скомпилированного образца в окне командной строки среды построения, выполните EXE-файл в папке Bin\Debug или Bin\Release, содержащихся в папке кода источника образца.
Для запуска скомпилированного образца с помощью отладки в Visual Studio, нажмите клавишу F5.
Примечания
В этом примере описывается сохранение размера, расположения и состояния окна Window, чтобы гарантировать открытие окна Window в том же месте, где оно было закрыто. Кроме того, в этом примере рассматривается поддержка нескольких мониторов, т.е. если монитор, на котором было закрыто окно Window, отключен, то окно Window показывается на другом присоединенном мониторе.
Требуются следующие структуры и функции API-интерфейсы Win32 (из User32.dll):
WINDOWPLACEMENT: для хранения размеров, расположения и состояния окна (см. описание структуры WINDOWPLACEMENT).
GetWindowPlacement: для извлечения данных WINDOWPLACEMENT текущего окна перед его закрытием (см. описание функции GetWindowPlacement).
SetWindowPlacement: для восстановления данных WINDOWPLACEMENT при открытии окна (см. описание функции SetWindowPlacement).
Структура WINDOWPLACEMENT физически хранится на диске с помощью поддержки Microsoft .NET Framework для строго типизированных параметров приложения (см. раздел Общие сведения о параметрах приложения).