UIElement.PointerPressed Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда указатель инициирует действие Нажатие в этом элементе.
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
события. Дополнительные сведения см. в разделе Обработка входных данных указателя. События указателя предназначены для сценариев, когда вас интересуют несколько указателей и их связи, или когда вы изучаете особенности каждого указателя, например точное положение координат. В противном случае можно рассмотреть возможность обработки событий жестов, таких как Tapped.
Для обработки этого события используйте обработчик на основе PointerEventHandler .
Ввод мыши связывается с отдельным указателем, назначаемым при первом обнаружении ввода мыши. Нажатие кнопки мыши (слева, колесика или справа) создает вторичную связь между указателем и этой кнопкой PointerPressed
через событие . Событие PointerReleased инициируется только тогда, когда отпускается та же кнопка мыши (никакая другая кнопка не может быть связана с указателем до завершения события). Из-за этой исключительной связи другие щелчки кнопок мыши обрабатываются с помощью события PointerMoved. Состояние кнопки мыши можно проверить при обработке этого события, как показано в следующем примере.
События указателя с устройства ввода с мыши обычно имеют один и тот же идентификатор PointerId в сведениях о событии за время существования приложения.
PointerPressed
является перенаправленным событием. Дополнительные сведения о концепции перенаправленных событий см. в статье Общие сведения о событиях и перенаправленных событиях.
Для сенсорного ввода, а также событий, связанных с взаимодействием, или событий операций, которые являются следствием сенсорного ввода, элемент должен быть видимым для проверки нажатия. В таком случае элемент становится источником события и вызывает событие, сопоставленное с действием. UIElement.Visibility должен быть видимым. Другие свойства производных типов также влияют на видимость проверки попадания. Дополнительные сведения см. в разделе Общие сведения о событиях и перенаправленных событиях.
PointerPressed
поддерживает возможность подключения обработчиков событий к маршруту, который будет вызываться, даже если данные события помечены как Handled. См. раздел AddHandler.
Определенные элементы управления среда выполнения Windows могут иметь обработку PointerPressed
события ввода на основе класса. В этом случае элемент управления, вероятно, имеет переопределение метода OnPointerPressed. Как правило, событие помечается обработчиком класса, и PointerPressed
событие не вызывается для обработки любыми обработчиками пользовательского кода в этом элементе управления. Например, ButtonBase имеет обработку класса, которая обрабатывает PointerPressed
и вместо этого вызывает click. Дополнительные сведения о том, как работает обработка событий на основе классов, см. в статье Общие сведения о событиях и перенаправленных событиях.
Элементы управления также могут иметь анимацию личности PointerDownThemeAnimation , которая выполняется независимо от события.
Запись указателя
PointerPressed
иногда используется в качестве инициирующего события при захвате указателя, так что все дальнейшие события, связанные с указателем, фиксируются определенным элементом до тех пор, пока указатель остается вниз. Чтобы записать указатель, вызовите метод CapturePointer для определенного элемента пользовательского интерфейса, который должен поддерживать запись. Обычно это делается в обработчике PointerPressed
событий и вызывается CapturePointer
для события sender
. Дополнительные сведения о том, как записать указатель и почему это может потребоваться, см. в разделе CapturePointer
.
События pointerPressed и жестов или события манипуляции
Изначальное действие пользователя, которое запускает PointerPressed
событие, может в конечном итоге привести к тому, что событие Holding будет представлять собой жест удержания , если устройство ввода не является мышью. Если элемент, в котором PointerPressed
происходит событие, имеет значение ManipulationMode , отличное от значения по умолчанию, это действие также может привести к различным событиям манипуляции, таким как ManipulationStarted. Дополнительные сведения см. в разделе "Использование событий манипуляции" статьи Обработка входных данных указателя.
При PointerPressed
срабатывании события жестов, такие как Касание , пока не активируются, так как события жестов, отличные от holding , ожидают освобождения указателя перед запуском события.
В качестве общего правила проектирования для взаимодействия с пользователем приложения следует проверить, существуют ли события, относящиеся к элементам управления, которые можно обрабатывать для взаимодействия, или соответствующие события жестов. Например, если вашим элементом управления является Кнопка, у этого элемента управления есть событие Click , специально предназначенное для вызова пользователем действия кнопки. Или если элемент не является кнопкой, но вы обрабатываете событие и для основного действия элемента, вы будете обрабатывать Касания.
События жестов можно специально отключить для отдельных элементов, задав такие свойства, как IsTapEnabled. Вы можете отключить события жестов при обработке манипуляций, но обычно не нужно отключать события жестов при обработке событий указателя. События указателя не могут быть специально отключены, но вы можете не обрабатывать их.
PointerPressed и PointerReleased
Другие события вместо PointerReleased могут срабатать в конце действия, например PointerCanceled или PointerCaptureLost. Не полагайтесь на PointerPressed
события и PointerReleased
, которые всегда происходят парами. Для правильной работы приложение должно прослушивать и обрабатывать все события, которые представляют собой вероятные выводы действия Нажатие . Ниже приведены некоторые причины, по которым вы не можете получить вхождение PointerReleased
.
- Различия в том, как конкретное оборудование обрабатывает действия касания и нажатие
- Программный захват указателя из другого указателя
- Действия пользователя, изменяющие связь области отображения, например изменение разрешения или параметров монитора
- Входные взаимодействия, такие как перо, касающееся той же поверхности, что и предыдущее действие касания