Обзор библиотечных событий

Если не считать исключений, которые возбуждаются средой исполнения, то библиотечные события WPF делятся на 4 группы:

  1. События времени жизни - возникают при загрузке, инициализации и выгрузке элемента, окна или приложения
  2. События ввода:
    • События клавиатуры - возникают в результате воздействия на клавиатуру
    • События мыши - возбуждаются манипулированием мыши
    • События стило (стилуса, пера) - использование устройства ввода на планшетных компьютерах, которое заменяет мышь

События времени жизни всех элементов управления наследуются от класса FrameworkElement и указаны в таблице

События времени жизни элементов
Событие Описание
Initialized Данное событие является обычным, а не перенаправленным, и возникает после создания элемента и определения всех его полей и свойств. Такое состояние характеризуется булевым свойством IsInitialized=true. На этом этапе еще не применены стили и привязка данных. Соседние элементы окна могут быть еще не полностью созданными
Loaded Возникает после события Initialized, когда все окно закончило инициализацию и дополнительно были применены стили и привязка данных к элементу. Это последний этап, за которым следует визуализация элемента. В этот момент он принимает состояние IsLoaded=true
Unloaded Возбуждается сразу после удаления элемента из контейнера или его закрытия

Класс FrameworkElement наследует и реализует интерфейс ISupportInitialize, объявляющий методы BeginInit() и EndInit(). Эти методы автоматически вызываются анализатором разметки, но если создавать элементы в процедурном коде, то их следует вызывать вручную. После вызова метода EndInit() инициализация элемента считается завершенной и возбуждается сигнализирующее событие Initialized.

Любой составной объект, имеющий ссылки на другие объекты, оформленные в нем как свойства типов адресуемых объектов, начинает свое создание с переферийных объектов. Эту нужно для того, чтобы при создании самого родителя его свойствам можно было присвоить уже готовые адреса вспомогательных объектов. Дерево элементов WPF тоже начинает строиться с листьев, то есть глубоко вложенные элементы инициализируются до того, как будут инициализированы их родительские контейнеры.

Есть еще события времени жизни окна:

События жизни окна
Событие Описание
Activated Возбуждается при получении окном фокуса ввода системы. По функциональности эквивалентно событию GotFocus элемента управления
Closed Возбуждается после закрытия окна, когда еще объекты дерева являются доступными и их событие Unloaded еще не возникло
Closing Возникает при получении команды на закрытие окна, которую еще ее можно отменить присвоением в обработчике свойству Cancel=true через аргумент CancelEventArgs. Если пользователь не закрывал окно, а просто вышел из системы, то нужно обрабатывать событие уровня приложения System.Windows.Application.SessionEnding
ContentRendered Возникает сразу после первой визуализации окна
Deactivated Возбуждается каждый раз, когда окно теряет фокус ввода при свертывании или переключении на другое окно
LocationChanged Происходит, когда местоположение окна изменяется
SourceInitialized Предусмотрено для поддержки взаимодействия с Win32
StateChanged Происходит при изменении окном свойства WindowState

События ввода через объекты-аргументы своих обработчиков передают информацию о состоянии устройств ввода при манипулировании с ними пользователей. Анализ этой информации позволяет принять решение об адекватной реакции приложения. События ввода являются маршрутизируемыми.








Дата добавления: 2015-04-15; просмотров: 904;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.