WPF, Клас Window

Клас Window успадкований від класу ContentControl. Це означає, що він може містити лише одного нащадка (яким зазвичай є контейнер компонування на кшталт елемента керування Grid) і що його фон можна зафарбовувати за допомогою пензля шляхом встановлення властивості Background.

Можна також використовувати і властивості BorderBrush і BorderThickness для додавання навколо вікна кордону, але ця межа додається всередині віконної рамки (тобто по краю клієнтської області). Віконну рамку можна взагалі видаляти шляхом установки для властивості WindowStyle значення None, що дозволяє створювати вікно, що повністю настроюється (тобто має спеціальну форму).

- Це область усередині вікна. Саме у ній розміщується вміст. До клієнтської області належить межа і рядок заголовка у верхній частині вікна. За керування цією областю відповідає операційна система.

Крім цього, клас Windows має невеликий набір членів, знайомих будь-якому програмісту для Windows. Найбільш очевидними є властивості, які стосуються зовнішнього вигляду і дозволяють змінювати спосіб відображення не клієнтської частини вікна. Основні члени класу Window перераховані нижче:

Якщо встановлено в true, клас Window дозволяє іншим вікнам "переглядати" через це за умови, що для фону було встановлено прозорий колір. У разі встановлення в false (поведінка за умовчанням) вміст, що знаходиться позаду даного вікна, не "переглядається", і прозорий колір фону візуалізується як чорний. У разі використання в комбінації з властивістю WindowsStyle, встановленим у None, ця властивість дозволяє створювати вікна, що мають незвичайну форму.

Icon

Об'єкт imageSource, що ідентифікує значок, який повинен використовуватися для цього вікна. Значкивідображаються у лівому верхньому куті вікна (якщо в ньому застосовується один із стандартних стилів кордонів), у панелі завдань (якщо властивість ShowInTaskBar встановлено в true) та у вікні вибору, яке з'являється, коли користувач натискає комбінацію клавіш для переходу між працюючими програмами. Оскільки ці значки мають різні розміри, у файлі .ico, що використовується для них, повинні міститися зображення з розмірами як мінімум 16x16 і 32x32 пікселя.

В останніх версіях Windows (Windows Vista та Windows 7) додано новий стандарт для значків 48x48 та 256x256 пікселів, розмір яких можна змінювати. Якщо властивість Icon встановлено в null, вікно отримує той самий значок, що й додаток (значок для якого можна вказати у Visual Studio, двічі клацнувши на вузлі Properties (Властивості) у вікні Solution Explorer і перейшовши на вкладку Application (Додаток)). Якщо властивість взагалі опущена, WPF для зображення вікна використовуватиме стандартний, але непримітний значок

Тор та Left

Визначають відстань між лівим верхнім кутом вікна та лівими верхніми краями екрана (у незалежних від пристрою одиницях). При зміні кожного з них генерується подія LocationChanged. Якщо властивість WindowStartupPosition встановлено у Manual, значення цих властивостей можна вказувати до появи вікна визначення, задаючи його початкову позицію. Яке значення не використовувалося б для WindowStartupPosition, ці властивості можна встановлювати в будь-який момент після відображення вікна, змінюючи його поточну позицію

ResizeMode

Приймає значення переліку ResizeMode, яке визначає, чи користувач може змінювати розміри вікна. Також впливає на видимість кнопок, що відповідають за розгортання та згортання вікна. Щоб повністю заблокувати розмір вікна,Використовуйте значення NoResize. Щоб користувач міг лише згортати вікно, використовуйте CanMinimize. Щоб користувач міг змінювати розмір вікна всіма можливими способами, вказуєте CanResize. Щоб у нижньому правому куті вікна відображалася ще й візуальна підказка, що вказує, що розміри вікна дозволено змінювати, задавайте значення CanResizeWithGrip.

RestoreBounds

Надає межі вікна. Якщо вікно в даний момент розгорнуто або згорнуто, ця властивість відображає межі, які використовували останні перед розгортанням або згортанням. Це надзвичайно зручно, коли необхідно зберегти інформацію про позицію та розміри вікна.

ShowInTaskBar

Якщо встановлено в true, вікно відображається на панелі завдань і списку, що з'являється після натискання клавіш . Зазвичай, ця властивість встановлюється в true тільки для головного вікна програми.

SizeToContent

Дозволяє створити вікно, яке автоматично збільшується відповідно до розмірів вмісту. Ця властивість набуває значення переліку SizeToContent. Щоб вимкнути автоматичну зміну розмірів вікна, використовуйте Manual. Щоб вікно могло збільшуватися у різних напрямках відповідно до розмірів динамічного вмісту, застосовуйте відповідно значення Height, Width або WidthAndHeight. У разі встановлення значення SizeToContent вікно може збільшуватися у розмірах відповідно до вмісту так, що виходитиме за межі екрана.

Title

Заголовок, який відображається у рядку заголовка вікна (і в панелі завдань)

Topmost

Якщо встановлено в true, вікно завжди відображається поверх решти вікон у додатку (якщо тільки у них ця властивість також не дорівнює true). Таканалаштування дуже зручне для палітр, які зазвичай повинні "плавати" над іншими вікнами

WindowStartupLocation

Приймає значення переліку WindowStartupLocation. Для розміщення вікна в конкретній позиції за допомогою властивостей Left та Тор використовуйте значення Manual. Для розміщення вікна по центру екрана використовуйте CenterScreen. Для розміщення вікна з урахуванням позиції вікна, яке його запустило, вказуйте значення CenterOwner. У разі відображення немодального вікна з використанням значення CenterOwner переконайтеся, що властивість Owner нового вікна встановлено перед тим, як показувати його.

WindowState

Приймає значення переліку WindowState. Інформує про те, у якому стані знаходиться вікно: розгорнутому, згорнутому або звичайному (і дозволяє змінити його). При зміні значення цієї властивості генерується подія StateChanged

WindowStyle

Приймає значення переліку WindowStyle, що визначає зовнішній вигляд межі вікна. Можливі значення: SingleBorderWindow (за замовчуванням), ThreeDBorderWindow (кордон візуалізується дещо іншим чином у Windows ХР), ToolWindow (відображається тонка межа, зручна для "плаваючих" вікон з інструментами без кнопок згортання і розгортання) і None (візуалізація області для рядка заголовка). Побачити різницю можна на малюнку нижче: