Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Если не считать исключений, которые возбуждаются средой исполнения, то библиотечные события 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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.