Поделиться через


UIElement.PointerExited Событие

Определение

Происходит, когда указатель покидает область проверки попадания этого элемента.

public:
 virtual event PointerEventHandler ^ PointerExited;
// Register
event_token PointerExited(PointerEventHandler const& handler) const;

// Revoke with event_token
void PointerExited(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::PointerExited_revoker PointerExited(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerExited;
function onPointerExited(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerexited", onPointerExited);
uIElement.removeEventListener("pointerexited", onPointerExited);
- or -
uIElement.onpointerexited = onPointerExited;
Public Custom Event PointerExited As PointerEventHandler 
<uiElement PointerExited="eventhandler"/>

Тип события

Комментарии

Событие PointerExited возникает в ответ на указатель, который изначально находился в ограничивающей области элемента, покидая эту ограничивающую область. Сенсорные, мыши, перо и перо получают, обрабатываются и управляются как входные данные указателя в приложении. Любое из этих устройств и их взаимодействия могут создать PointerExited событие. Дополнительные сведения см. в разделе Обработка входных данных указателя и других примечаниях в этой статье.

Для обработки этого события используйте обработчик, основанный на PointerEventHandler .

Для сенсорного ввода, а также событий, связанных с взаимодействием, или событий операций, которые являются следствием сенсорного ввода, элемент должен быть видимым для проверки нажатия. В таком случае элемент становится источником события и вызывает событие, сопоставленное с действием. UIElement.Visibility должен быть видимым. Другие свойства производных типов также влияют на видимость проверки попадания. Дополнительные сведения см. в разделе Общие сведения о событиях и перенаправленных событиях.

PointerExited поддерживает возможность подключения обработчиков событий к маршруту, который будет вызываться, даже если данные события помечены как Handled. См . раздел AddHandler.

Определенные среда выполнения Windows элементы управления могут обрабатывать событие ввода на основе PointerExited классов. В этом случае элемент управления, вероятно, имеет переопределение для метода OnPointerExited. Обычно событие не помечается обработчиком класса, поэтому событие по-прежнему PointerExited может обрабатываться пользовательским кодом элемента управления в пользовательском интерфейсе. Дополнительные сведения о том, как работает обработка событий на основе классов, см. в статье Обзор событий и перенаправленных событий.

Если другой элемент захватил указатель, не срабатывает, PointerExited даже если захваченный указатель покидает границы элемента. Дополнительные сведения о захвате указателя см. в разделе Взаимодействие с захватом указателя или мышью.

PointerExited для ввода мыши и пера

Устройство ввода с помощью мыши имеет курсор на экране, который отображается при каждом перемещении мыши, даже если в это время кнопка мыши не нажата. Аналогичное поведение доступно для ввода устройства с помощью пера, где устройства ввода могут обнаружить, что перо наведено на поверхность устройства ввода (IsInRange), но не касается его. Таким образом, ввод с помощью мыши и пера устройства будет вызывать PointerExited события в несколько разных случаях, чем события касания. Дополнительные сведения см. в статье Взаимодействие с помощью мыши. Событие PointerExited срабатывает после последнего события PointerMoved для элемента.

PointerExited для сенсорного ввода

Точку касания можно обнаружить только в том случае, если палец касается поверхности. Всякий раз, когда действие касания приводит к возникновению события PointerReleased , за ним сразу же следует PointerExited событие, при этом все данные события содержат одинаковые сведения для двух событий (одинаковый идентификатор указателя, одинаковое положение и т. д.). Иными словами, считается, что указатель входит в элемент в тот момент, когда точка касания касается элемента.

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

Поведение перенаправленного события для PointerExited

PointerExited — это перенаправленное событие. Дополнительные сведения о концепции перенаправленных событий см. в статье Общие сведения о событиях и перенаправленных событиях. Можно определить несколько PointerExited событий для элементов в пользовательском интерфейсе XAML, в том числе для элементов, которые находятся в связи "родители-потомки". В типичной композиции пользовательского интерфейса дочерние элементы находятся в пределах границ родительского элемента, поэтому PointerExited событие сначала возникает для дочернего элемента, когда указатель выходит из дочернего элемента, а затем для родительского элемента, когда указатель полностью выходит из этого родительского элемента. Событие PointerExited обычно не перенаправляется в родительский элемент, когда дочерний элемент запускает его, так как система входных данных не может перенаправить PointerExited вхождение события в родительский элемент. Как правило, вы не хотите PointerExited , чтобы события маршрутизировать в любом случае, вы хотите обработать их только от отправителя. Вы можете явно запретить маршрутизацию событий, задав для параметра Handled значение true в обработчике.

В редких случаях можно увидеть пузырек PointerExited события для родительского объекта. Например, если вы использовали RenderTransform для смещения дочернего элемента за пределы его родительского элемента, событие перенаправляется в родительский элемент при выходе из дочернего элемента и предоставляет сведения о событии, сообщаемые тем, как дочерний элемент произвел событие.

Визуальные состояния PointerOver для элементов управления

Элементы управления, имеющие шаблоны элементов управления, могут применять визуальные состояния, активные, только если указатель находится над границами элемента управления. Для получения или PointerExited изменения этого поведения не всегда нужно обрабатывать pointerEntered, а также получать или изменять это поведение. Может потребоваться повторно создать шаблон элемента управления. Если вы наследуете от существующего элемента управления, который уже имеет низкоуровневую обработку входных данных, которая вызывает визуальные состояния, следует указать визуальное состояние с именем PointerOver в "CommonStates" VisualStateGroup, и встроенная логика элемента управления будет загружать это визуальное состояние при наведении указателя на элемент управления. Визуальное состояние для указателя мыши часто присутствует в элементах управления, которые можно вызвать или выбрать, например Button или ListViewItem. Если вы наследуете от базового класса , например Control , который не имеет встроенной обработки входных событий, вызывающих визуальные состояния, может потребоваться самостоятельно переопределить OnPointerEntered и OnPointerExited , чтобы получить такое поведение. Используйте OnPointerExited для вызова GoToState для загрузки состояния, отличного от состояния PointerOver, например "Normal".

Применяется к

См. также раздел