СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Работа с окнами

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Работа с окнами»

Работа с окнами

Работа с окнами

Класс Window Ключевым элементом в системе графического интерфейса в WPF является окно, которое содержит все необходимые элементы управления. Окно в WPF представлено классом  Window , который является производным от класса ContentControl. Поэтому окно является элементом управления содержимым, и как, к примеру, кнопка, может содержать в себе один дочерний элемент. Как правило, в его качестве выступает один из элементов компоновки, например, Grid.

Класс Window

  • Ключевым элементом в системе графического интерфейса в WPF является окно, которое содержит все необходимые элементы управления. Окно в WPF представлено классом  Window , который является производным от класса ContentControl. Поэтому окно является элементом управления содержимым, и как, к примеру, кнопка, может содержать в себе один дочерний элемент. Как правило, в его качестве выступает один из элементов компоновки, например, Grid.
Класс Window привносит ряд свойств, которые позволяют настроить окно приложения: AllowsTransparency : при значении true позволяет установить прозрачный фон окна Icon : представляет иконку, которая отображается в левом верхнем углу окна и в панели задач.  Если иконка не установлена, то система будет использовать стандартную иконку по умолчанию. Top : устанавливает отступ окна приложения от верхней границы экрана Left : устанавливает отступ окна приложения от левой границы экрана

Класс Window привносит ряд свойств, которые позволяют настроить окно приложения:

  • AllowsTransparency : при значении true позволяет установить прозрачный фон окна
  • Icon : представляет иконку, которая отображается в левом верхнем углу окна и в панели задач.

Если иконка не установлена, то система будет использовать стандартную иконку по умолчанию.

  • Top : устанавливает отступ окна приложения от верхней границы экрана
  • Left : устанавливает отступ окна приложения от левой границы экрана
ResizeMode : задает режим изменения размеров окна. Может принимать следующие значения: CanMinimize: окно можно только свернуть NoResize: у окна нельзя изменить начальные размеры CanResize: у окна можно изменять размеры CanResizeWithGrip: в правом нижнем углу окна появляется визуализация того, что у CanMinimize: окно можно только свернуть NoResize: у окна нельзя изменить начальные размеры CanResize: у окна можно изменять размеры CanResizeWithGrip: в правом нижнем углу окна появляется визуализация того, что у окна можно изменять размеры
  • ResizeMode : задает режим изменения размеров окна. Может принимать следующие

значения:

  • CanMinimize: окно можно только свернуть NoResize: у окна нельзя изменить начальные размеры CanResize: у окна можно изменять размеры CanResizeWithGrip: в правом нижнем углу окна появляется визуализация того, что у
  • CanMinimize: окно можно только свернуть
  • NoResize: у окна нельзя изменить начальные размеры
  • CanResize: у окна можно изменять размеры
  • CanResizeWithGrip: в правом нижнем углу окна появляется визуализация того, что у

окна можно изменять размеры

RestoreBounds : возвращает границы окна ShowInTaskbar : при значении true иконка окна отображается на панели задач SizeToContent : позволяет автоматически масштабировать размеры окна в зависимости от содержимого. Может принимать следующие значения: Width: автоматически масштабируется только ширина Height: автоматически масштабируется только высота WidthAndHeight: автоматически масштабируются высота и ширина Manual: автоматическое масштабирование отсутствует Width: автоматически масштабируется только ширина Height: автоматически масштабируется только высота WidthAndHeight: автоматически масштабируются высота и ширина Manual: автоматическое масштабирование отсутствует
  • RestoreBounds : возвращает границы окна
  • ShowInTaskbar : при значении true иконка окна отображается на панели задач
  • SizeToContent : позволяет автоматически масштабировать размеры окна в зависимости от содержимого.
  • Может принимать следующие значения:
  • Width: автоматически масштабируется только ширина Height: автоматически масштабируется только высота WidthAndHeight: автоматически масштабируются высота и ширина Manual: автоматическое масштабирование отсутствует
  • Width: автоматически масштабируется только ширина
  • Height: автоматически масштабируется только высота
  • WidthAndHeight: автоматически масштабируются высота и ширина
  • Manual: автоматическое масштабирование отсутствует
Title : заголовок окна Topmost : при значении true окно устанавливается поверх других окон приложения WindowStartupLocation : устанавливает стартовую позицию окна. Может принимать следующие значения: CenterOwner: если данное окно было запущено другим окном, то данное окно позиционируется относительно центра CenterOwner: если данное окно было запущено другим окном, то данное окно позиционируется относительно центра запустившего его окна CenterScreen: окно помещается в центре экрана Manual: позиция устанавливается вручную с помощью свойств Top и Left CenterScreen: окно помещается в центре экрана Manual: позиция устанавливается вручную с помощью свойств Top и Left
  • Title : заголовок окна
  • Topmost : при значении true окно устанавливается поверх других окон приложения
  • WindowStartupLocation : устанавливает стартовую позицию окна. Может принимать следующие значения:
  • CenterOwner: если данное окно было запущено другим окном, то данное окно позиционируется относительно центра
  • CenterOwner: если данное окно было запущено другим окном, то данное окно позиционируется относительно центра

запустившего его окна

  • CenterScreen: окно помещается в центре экрана Manual: позиция устанавливается вручную с помощью свойств Top и Left
  • CenterScreen: окно помещается в центре экрана
  • Manual: позиция устанавливается вручную с помощью свойств Top и Left
WindowState : состояние окна. Возможные значения: Maximized: раскрыто на весь экран Minimized: свернуто Normal: стандартное состояние Maximized: раскрыто на весь экран Minimized: свернуто Normal: стандартное состояние
  • WindowState : состояние окна. Возможные значения:
  • Maximized: раскрыто на весь экран Minimized: свернуто Normal: стандартное состояние
  • Maximized: раскрыто на весь экран
  • Minimized: свернуто
  • Normal: стандартное состояние
Жизненный цикл В процессе работы окно в WPF проходит ряд этапов жизненного цикла, которые доступны нам через обработку событий класса Window : Initialized : это событие возникает при инициализации окна, когда у него устанавливаются все свойства, но до применения к нему стилей и привязки данных. Это общее событие для всех элементов управления в WPF, поэтому следует учитывать, что сначала возникают события вложенных элементов, а затем их контейнеров. То есть событие Initialized окна приложения генерируется только после того, как отработает событие Initialized для всех вложенных элементов. Loaded : возникает после полной инициализации окна и применения к нему стилей и привязки данных. После генерации этого события происходит визуализация элемента, и окно отображается на экране и становится видимым для пользователя Closing : возникает при закрытии окна Closed : возникает, когда окно становится закрытым Unloaded : возникает после закрытия окна при выгрузке всех связанных ресурсов из памяти

Жизненный цикл

  • В процессе работы окно в WPF проходит ряд этапов жизненного цикла, которые доступны нам через обработку событий класса Window :
  • Initialized : это событие возникает при инициализации окна, когда у него устанавливаются все свойства, но до применения к нему стилей и привязки данных. Это общее событие для всех элементов управления в WPF, поэтому следует учитывать, что сначала возникают события вложенных элементов, а затем их контейнеров. То есть событие Initialized окна приложения генерируется только после того, как отработает событие Initialized для всех вложенных элементов.
  • Loaded : возникает после полной инициализации окна и применения к нему стилей и привязки данных. После генерации этого события происходит визуализация элемента, и окно отображается на экране и становится видимым для пользователя
  • Closing : возникает при закрытии окна
  • Closed : возникает, когда окно становится закрытым
  • Unloaded : возникает после закрытия окна при выгрузке всех связанных ресурсов из памяти
Соответственно, если нам надо выполнить некоторые действия при загрузке или при закрытии окна, мы можем обработать события Loaded и Closing/Closed. Например, запишем в текстовый лог события жизненного цикла:
  • Соответственно, если нам надо выполнить некоторые действия при загрузке или при закрытии окна, мы можем обработать события Loaded и Closing/Closed. Например, запишем в текстовый лог события жизненного цикла:
Взаимодействие между окнами Рассмотрим, как мы можем взаимодействовать с несколькими окнами в WPF. Для этого создадим новый проект. По умолчанию он уже содержит одно главное окно MainWindow. Теперь добавим еще одно окно. Для этого в окне добавления нового элемента нам надо выбрать тип

Взаимодействие между окнами

  • Рассмотрим, как мы можем взаимодействовать с несколькими окнами в WPF. Для этого создадим новый проект. По умолчанию он уже содержит одно главное окно MainWindow. Теперь добавим еще одно окно. Для этого в окне добавления нового элемента нам надо выбрать тип "Window (WPF)":
Назовем его  TaskWindow . Теперь определим на главном окне MainWindow кнопку для открытия нового окна:
  • Назовем его  TaskWindow .
  • Теперь определим на главном окне MainWindow кнопку для открытия нового окна:
При нажатии на кнопку открывается окно TaskWindow.

При нажатии на кнопку открывается окно TaskWindow.

Класс App и свойство Windows Еще одним способ для взаимодействия с окнами предоставляет класс App – главный класс приложения. Он содержит свойство Windows , которое хранит информацию обо всех открытых окна приложения. И в любом месте программы мы можем получить эту информацию:

Класс App и свойство Windows

  • Еще одним способ для взаимодействия с окнами предоставляет класс App – главный класс приложения. Он содержит свойство Windows , которое хранит информацию обо всех открытых окна приложения. И в любом месте программы мы можем получить эту информацию:
Диалоговые окна WPF поддерживает возможность создания модальных диалоговых окон. При вызове модальное окно блокирует доступ к родительскому окну, пока пользователь не закроет модальное окно. Для работы добавим в проект новое окно, которое назовем  PasswordWindow . Это окно будет выполнять роль модального.

Диалоговые окна

  • WPF поддерживает возможность создания модальных диалоговых окон. При вызове модальное окно блокирует доступ к родительскому окну, пока пользователь не закроет модальное окно.
  • Для работы добавим в проект новое окно, которое назовем  PasswordWindow . Это окно будет выполнять роль модального.
Здесь определено текстовое поле для ввода пароля и две кнопки. Вторая кнопка с атрибутом IsCancel=

Здесь определено текстовое поле для ввода пароля и две кнопки. Вторая кнопка с атрибутом IsCancel=

"True" будет выполнять роль отмены. А первая кнопка будет подтверждать ввод.

Для успешного выхода из модального диалогового окна нам надо для свойства  DialogResult  установить значение true. Для второй кнопки необязательно определять обработчик, так как у нее установлен атрибут IsCancel=

Для успешного выхода из модального диалогового окна нам надо для свойства  DialogResult  установить значение true.

Для второй кнопки необязательно определять обработчик, так как у нее установлен атрибут IsCancel="True", следовательно, ее нажатие будет эквивалентно результату this.DialogResult = false;. Этот же результат будет при закрытии диалогового окна на крестик.

Кроме того, здесь определяется свойство Password, через которое мы можем извне получить введенный пароль.