확장 최소화

UIElement.PointerMoved Event

포인터가 이 요소의 적중 테스트 영역 내에 유지되는 동안 포인터가 이동하면 발생합니다.

구문


public event PointerEventHandler PointerMoved


<uiElement PointerMoved="eventhandler"/>

이벤트 정보

대리자 PointerEventHandler

설명

Windows 스토어 앱에서 터치, 마우스 및 펜/스타일러스 상호 작용은 포인터 입력으로 수신, 처리 및 관리됩니다. 이러한 조작에 따라 PointerMoved 이벤트가 생성될 수 있습니다. 자세한 내용은 빠른 시작: 포인터 및 이 항목의 "마우스 및 스타일러스 입력에 대한 PointerMoved" 단원을 참조하십시오.

사용자가 마우스를 사용하는 경우 등 일부 UI 시나리오에서는 이 이벤트가 많이 발생합니다. 이 처리기에 입력하는 코드의 성능을 주의하고, 논리가 실제로 실행되어야 하는 횟수를 조절할 수 있는 자신만의 플래그 또는 허용 오차를 사용하는 것을 고려하십시오.

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

터치 작업의 경우와 터치 작업 결과로 발생하는 상호 작용별 또는 조작 이벤트의 경우, 이벤트 소스가 되도록 하려면 보이는 요소를 적중 테스트하고 작업과 연결된 이벤트를 발생시켜야 합니다. UIElement.VisibilityVisible이어야 합니다. 파생 형식의 다른 속성은 적중 테스트 표시 유형에도 영향을 줍니다. 자세한 내용은 적중 테스트 및 입력 이벤트를 참조하십시오.

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

마우스 및 스타일러스 입력에 대한 PointerMoved

마우스 입력 장치에는 마우스를 요소의 경계로 이동할 때마다 표시되는 화면 커서(마우스 단추를 누르는 경우에도 나타남)가 있습니다. 펜이 입력 장치 화면을 가리키고 있지만 화면을 터치하지 않고 있음을 입력 장치에서 감지할 수 있는 펜 장치 입력에도 이와 유사한 동작을 사용할 수 있습니다. 따라서 마우스 및 펜 입력은 터치식 입력보다 더 자주 PointerMoved 이벤트를 발생시킵니다. 자세한 내용은 마우스 상호 작용에 응답을 참조하십시오.

반면, 터치 지점은 손가락이 표면에 닿는 경우에만 감지할 수 있습니다. 터치 지점은 터치 지점이 이동할 때 화면과 일정한 접촉을 유지하는 동안에만 PointerMoved를 생성합니다. PointerMoved를 생성하는 이러한 종류의 터치 동작에 대해 조작 또는 제스처로 동작을 처리할 수도 있습니다. 자세한 내용은 빠른 시작: 터치 입력을 참조하십시오.

마우스 입력은 마우스 입력이 처음 발견될 때 할당된 단일 포인터와 관련이 있으며, 마우스로 시작되는 모든 상호 작용은 동일한 PointerId를 갖습니다. 마우스 단추(왼쪽, 휠 또는 오른쪽)를 클릭하면 PointerPressed 이벤트를 통해 포인터와 해당 단추 간의 보조 연결을 만듭니다. 동일한 마우스 단추를 놓을 때(이 이벤트가 완료될 때까지 다른 단추는 이 포인터와 연결될 수 없는 경우)에만 PointerReleased 이벤트가 발생합니다. 이 단독 연결 때문에 다른 마우스 단추 클릭은 PointerMoved 이벤트를 통해 라우팅됩니다. 다음 예제와 같이 이 이벤트를 처리할 때 마우스 단추 상태를 테스트할 수 있습니다.


private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;

    // Multiple, simultaneous mouse button inputs are processed here.
    // Mouse input is associated with a single pointer assigned when 
    // mouse input is first detected. 
    // Clicking additional mouse buttons (left, wheel, or right) during 
    // the interaction creates secondary associations between those buttons 
    // and the pointer through the pointer pressed event. 
    // The pointer released event is fired only when the last mouse button 
    // associated with the interaction (not necessarily the initial button) 
    // is released. 
    // Because of this exclusive association, other mouse button clicks are 
    // routed through the pointer move event.          
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        // To get mouse state, we need extended pointer details.
        // We get the pointer info through the getCurrentPoint method
        // of the event argument. 
        Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);
        if (ptrPt.Properties.IsLeftButtonPressed)
        {
            eventLog.Text += "\nLeft button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsMiddleButtonPressed)
        {
            eventLog.Text += "\nWheel button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsRightButtonPressed)
        {
            eventLog.Text += "\nRight button: " + ptrPt.PointerId;
        }
    }

    // Prevent most handlers along the event route from handling the same event again.
    e.Handled = true;

    // Display pointer details.
    updateInfoPop(e);
}


요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadata

Windows.winmd

참고 항목

UIElement
PointerEntered
OnPointerMoved
빠른 시작: 터치 입력
빠른 시작: 포인터 입력 처리
XAML 사용자 입력 이벤트 샘플

 

 

표시:
© 2014 Microsoft