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.Видимость должна быть видимой. Другие свойства производных типов также влияют на видимость попадания в тест. Дополнительные сведения см. в разделе "События" и обзор перенаправленных событий.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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