다음을 통해 공유


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

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

다른 요소가 포인터 PointerExited 를 캡처한 경우 캡처된 포인터가 요소의 경계를 벗어나더라도 가 실행되지 않습니다. 포인터 캡처에 대한 자세한 내용은 CapturePointer 또는 마우스 상호 작용을 참조하세요.

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

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

터치 입력에 대한 PointerExited

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

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

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

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

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

포인터 컨트롤에 대한 시각적 상태

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

적용 대상

추가 정보