UIElement.PointerEntered 이벤트

정의

포인터가 이 요소의 적중 테스트 영역에 들어갈 때 발생합니다.

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

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

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

이벤트 유형

설명

이벤트는 PointerEntered 요소의 경계 영역으로 이동하는 포인터에 대한 응답으로 발생합니다. 터치, 마우스 및 펜/스타일러스 상호 작용은 앱에서 포인터 입력으로 수신, 처리 및 관리됩니다. 이러한 디바이스 및 해당 상호 작용은 이벤트를 생성할 PointerEntered 수 있습니다. 자세한 내용은 포인터 입력 처리 및 이 항목의 다른 설명도 참조하세요.

PointerEntered 는 라우트된 이벤트입니다. 라우트된 이벤트 개념에 대한 자세한 내용은 이벤트 및 라우트된 이벤트 개요를 참조하세요.

PointerEventHandler를 기반으로 하는 처리기를 사용하여 이 이벤트를 처리합니다.

터치 동작의 경우와 터치 동작의 결과인 조작 관련 또는 조작 이벤트의 경우에도 이벤트 원본이 되거나 터치 동작과 연관된 이벤트를 실행하려면 요소의 적중 횟수 테스트가 보여야 합니다. UIElement.Visibility는표시되어야 합니다. 파생 형식의 다른 속성도 적중 테스트 표시 유형에 영향을 미칩니다. 자세한 내용은 이벤트 및 라우트된 이벤트 개요를 참조하세요.

PointerEntered 는 이벤트에 대한 이벤트 데이터가 처리됨으로 표시된 경우에도 호출될 경로에 이벤트 처리기를 연결하는 기능을 지원 합니다. AddHandler를 참조하세요.

특정 Windows 런타임 컨트롤에는 PointerEntered 입력 이벤트에 대한 클래스 기반 처리가 있을 수 있습니다. 이 경우 컨트롤에 OnPointerEntered 메서드에 대한 재정의가 있는 것일 수 있습니다. 일반적으로 이벤트는 클래스 처리기에 의해 처리된 것으로 표시되지 않으므로 UI의 PointerEntered 컨트롤에 대한 사용자 코드에서 이벤트를 처리할 수 있습니다. 이벤트에 대한 클래스 기반 처리의 작동 방식에 대한 자세한 내용은 이벤트 및 라우트된 이벤트 개요를 참조하세요.

마우스 및 펜/스타일러스 입력에 대한 PointerEntered

마우스 입력 디바이스에는 마우스 단추를 눌렀을 때도 마우스가 움직일 때마다 표시되는 화면 커서가 있습니다. PointerEntered 이벤트가 요소에 의해 발생한 첫 번째 PointerMoved 이벤트 앞에 섰습니다. 펜 디바이스 입력에도 비슷한 동작을 사용할 수 있습니다. 여기서 입력 디바이스는 스타일러스가 입력 장치 표면(IsInRange)을 마우스로 가리키고 있지만 만지지 않는 것을 감지할 수 있습니다. 따라서 마우스 및 펜 장치 입력은 터치 이벤트와 약간 다른 경우에 이벤트를 발생 PointerEntered 합니다. 자세한 내용은 마우스 조작을 참조하세요.

터치 입력을 위한 PointerEntered

터치 포인트는 손가락이 표면에 닿는 경우에만 감지할 수 있습니다. 터치 동작으로 인해 PointerPressed 이벤트가 발생할 때마다 해당 이벤트 바로 앞에 PointerEntered 이벤트가 발생하며, 모든 이벤트 데이터는 두 이벤트에 대해 동일한 정보(동일한 포인터 ID, 동일한 위치 등)가 됩니다. 즉, 포인터는 현재 요소를 입력하고 요소가 터치 포인트에 의해 터치되는 위치로 간주됩니다.

또는 포인터가 이동할 때 표면과 지속적으로 접촉하여 요소의 적중 테스트 범위에 들어가면 터치 포인트가 생성 PointerEntered 됩니다. 이러한 종류의 터치 작업의 경우 포인터 이벤트가 아닌 조작 또는 제스처로 작업을 처리할 수도 있습니다. 자세한 내용은 포인터 입력 처리를 참조하세요.

PointerEntered에 대한 라우트된 이벤트 동작

PointerEntered 는 라우트된 이벤트입니다. 라우트된 이벤트 개념에 대한 자세한 내용은 이벤트 및 라우트된 이벤트 개요를 참조하세요. 부모-자식 관계에 있는 요소를 포함하여 XAML UI의 요소에 대해 여러 PointerEntered 이벤트를 정의할 수 있습니다. 일반적인 UI 컴퍼지션에서 자식 요소는 부모 요소의 범위 내 어딘가에 있으므로 PointerEntered 포인터가 부모로 이동할 때 부모에 대해 이벤트가 먼저 발생하고 포인터가 이동할 때 자식에 대해 이벤트가 발생합니다. 개념적으로 포인터가 PointerEntered 이미 부모 범위 내에 있고 입력 시스템에서 이벤트 발생을 부모로 라우팅 PointerEntered 하는 것이 혼동되기 때문에 일반적으로 자식 요소가 발생할 때 이벤트는 부모에 버블링되지 않습니다. 일반적으로 이벤트가 라우팅되지 않도록 PointerEntered 하려면 보낸 사람만 처리하려고 합니다. 처리기에서 Handled 를 로 설정하여 이벤트 라우팅을 명시적으로 방지할 true 수 있습니다.

드문 경우이지만 부모에 대한 이벤트 버블을 PointerEntered 볼 수 있습니다. 예를 들어 RenderTransform 을 사용하여 부모 범위를 벗어난 자식 요소를 오프셋한 경우 자식 요소가 입력될 때 이벤트가 부모에 거품이 발생하며 자식 요소가 이벤트를 발생시킨 방법에 의해 보고된 이벤트 정보를 제공합니다.

포인터 캡처

다른 요소가 포인터 PointerEntered 를 캡처한 경우 캡처된 포인터가 요소의 경계에 들어가더라도 실행되지 않습니다. 그러나 포인터가 요소 PointerEntered 위에 있는 동안 포인터 캡처가 해제되면 가 발생하며, 이 경우 포인터가 고정된 상태로 남아 있을 수도 있다고 생각됩니다. 이벤트 데이터의 GetCurrentPoint 값은 캡처가 해제되었을 때 포인터가 이미 요소 위에 있었기 때문에 요소의 중간에 있는 지점이 아니라 해당 가장자리를 따라 있는 점일 수 있습니다. 포인터 캡처에 대한 자세한 내용은 CapturePointer 또는 마우스 상호 작용을 참조하세요.

Pointer 컨트롤에 대한 시각적 상태 이상

컨트롤 템플릿이 있는 컨트롤은 포인터가 컨트롤의 범위를 넘을 때만 활성 상태인 시각적 상태를 적용할 수 있습니다. 이 동작을 얻거나 변경하기 위해 항상 또는 PointerExited를 처리 PointerEntered 할 필요는 없습니다. 컨트롤의 템플릿을 다시 지정해야 할 수 있습니다. 시각적 상태를 호출하는 하위 수준 입력 처리가 이미 있는 기존 컨트롤에서 파생되는 경우 " CommonStates" VisualStateGroup에서 "PointerOver"라는 시각적 상태를 제공해야 하며, 기본 제공 컨트롤 논리는 포인터가 컨트롤을 초과할 때마다 해당 시각적 상태를 로드합니다. 포인터 오버에 대한 시각적 상태는 단추 또는 ListViewItem과 같이 호출하거나 선택할 수 있는 컨트롤에 있는 경우가 많습니다. 시각적 상태를 호출하는 기본 제공 입력 이벤트 처리가 없는 Control 과 같은 기본 클래스에서 파생하는 경우 OnPointerEnteredOnPointerExited 를 재정의하여 이 동작을 가져와야 할 수 있습니다.

적용 대상

추가 정보