UIElement.PointerPressed Событие

Определение

Происходит, когда устройство указателя инициирует действие Press в этом элементе.

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

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

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

Тип события

Комментарии

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

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

Входные данные мыши связаны с одним указателем, назначенным при первом обнаружении ввода мыши. Нажатие кнопки мыши (слева, колесика или справа) создает вторичную связь между указателем и этой кнопкой через PointerPressed событие. Событие PointerReleased запускается только при освобождении той же кнопки мыши (пока это событие не будет завершено, кнопка не может быть связана с указателем). Из-за этой эксклюзивной связи другие нажатия кнопки мыши направляются через событие PointerMoved . При обработке этого события можно проверить состояние кнопки мыши, как показано в следующем примере.

События указателя с устройства ввода мыши обычно имеют тот же PointerId в сведениях о событии для времени существования приложения.

PointerPressed — это перенаправленное событие. Дополнительные сведения о концепции перенаправленного события см. в разделе "События" и обзор перенаправленных событий.

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

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

Определенные элементы управления среда выполнения Windows могут обрабатывать события ввода на PointerPressed основе классов. Если да, элемент управления, вероятно, имеет переопределение для метода OnPointerPressed. Обычно событие помечается обработчиком классов, и PointerPressed событие не вызывается для обработки обработчиками пользовательского кода в этом элементе управления. Например, ButtonBase имеет обработку классов, которая обрабатывает PointerPressed и вместо этого запускает click. Дополнительные сведения о том, как работает обработка событий на основе классов, см. в разделе "События" и обзор перенаправленных событий.

Элементы управления также могут иметь анимацию личности PointerDownThemeAnimation , которая выполняется независимо от события.

Запись указателя

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

События указателя и жесты или события манипуляции

Действие пользователя, которое запускает событие, может в конечном итоге привести к событию Холдинга, PointerPressed представляющего жест удержания, если устройство ввода не является мышью. Если элемент, на котором PointerPressed происходит, имеет значение, отличное от default ManipulationMode , действие также может привести к различным событиям манипуляции, таким как ManipulationStarted. Дополнительные сведения см. в разделе "Использование событий манипуляции" в разделе "Обработка входных данных указателя".

При PointerPressed срабатывании жестов такие события, как Tapped , пока не будут работать, так как события жестов, отличные от Холдинга , ожидают освобождения указателя перед запуском события.

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

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

PointerPressed и PointerReleased

Другие события вместо PointerReleased могут возникать в конце действия, например PointerCanceled или PointerCaptureLost. Не полагаться на PointerPressed события, PointerReleased которые всегда происходят в парах. Для правильной работы приложение должно прослушивать и обрабатывать все события, которые представляют вероятные выводы в действии нажатия. Ниже приведены некоторые причины, по которым вы не можете получить PointerReleased вхождение:

  • Различия в том, как конкретное оборудование обрабатывает действия касания и действия нажатия
  • Программное захват указателя с другого указателя
  • Действия пользователей, изменяющие связь области отображения, например изменение параметров разрешения или монитора
  • Входные взаимодействия, такие как перо, касающиеся той же поверхности, что и предыдущее сенсорное действие

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

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