다음을 통해 공유


컨트롤 패턴 끌기

속성 및 메서드에 대한 정보를 포함하여 IDragProvider를 사용하여 끌기 컨트롤 패턴을 구현하기 위한 지침과 규칙을 제공합니다. 끌기 컨트롤 패턴은 끌기 가능한 컨트롤 또는 끌기 가능한 항목이 있는 컨트롤을 지원하는 데 사용됩니다.

구현 지침 및 규칙

끌기 컨트롤 패턴을 구현할 때 다음 지침 및 규칙을 사용합니다.

  • IDragProvider 인터페이스는 소스/대상 스타일과 원본 전용 스타일이라는 두 가지 끌기 스타일을 지원합니다. 끌어서 놓기 시나리오에 가장 적합한 스타일을 선택해야 합니다.
    • 원본/대상 스타일: 가능한 각 놓기 대상은 IDropTargetProvider 인터페이스를 구현하는 요소로 표시됩니다. 끌기 작업 중 Microsoft UI 자동화 이벤트는 끌어서 놓는 대상 요소에서 발생합니다.
    • 원본 전용 스타일: 놓기 대상은 UI 자동화 요소로 표현되지 않습니다. 끌기 작업 중에 이벤트는 끌기 중인 요소에서만 발생합니다.
  • IDragProvider 는 끌기 작업을 모니터링하기 위한 읽기 전용 인터페이스입니다. 끌기 작업을 제어하는 데 사용할 수 없습니다. 컨트롤에 마우스 입력을 전송하여 끌기 작업을 자동화할 수 있습니다.
  • IDragProvider::IsGrabbed 속성이 필요합니다.
  • IDragProvider::D ropEffectIDragProvider::D ropEffects 속성은 원본 전용 스타일 구현에 필요하며 원본/대상 스타일 구현에는 금지되어 있습니다. 원본/대상 스타일 구현에서 드롭 대상 요소의 드롭 효과를 쿼리할 수 있습니다.
  • IDragProvider::GrabbedItems 속성은 여러 항목의 끌기를 나타냅니다. 사용자가 끌기 작업을 시작할 때 이벤트 원본 요소로 사용할 새 UI 자동화 요소를 만들어야 합니다. 이 새 요소는 원본 요소가 원본/대상 또는 원본 전용 모드에서 발생했을 모든 이벤트를 발생시키는 반면, 실제로 끌고 있는 요소는 이벤트를 발생하지 않습니다. 끌기 작업이 완료되면 이벤트 원본 요소를 삭제합니다.
  • 요소는 변경 시 DropEffect(UIA_DragDropEffectPropertyId) 및 DropEffects(UIA_DragDropEffectsPropertyId) 속성에 대해 속성 변경 이벤트를 발생시켜야 합니다. 다른 속성에 대한 속성 변경 이벤트는 허용되지만 필요한 DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) 및 DragComplete (UIA_Drag_DragCompleteEventId) 이벤트에서 유추할 수 있습니다.

IDragProvider에 필요한 멤버

IDragProvider 인터페이스를 구현하려면 다음 속성과 메서드가 필요합니다.

필요한 멤버 멤버 형식 참고
IsGrabbed 속성 없음
DropEffect 속성 원본 전용 스타일의 구현에 필요합니다.
DropEffects 속성 잡기 항목에 대해 두 개 이상의 가능한 드롭 효과가 있는 경우 필요합니다.
GetGrabbedItems 메서드 다중 항목 끌기 작업에 필요합니다.
UIA_Drag_DragStartEventId 이벤트 없음
UIA_Drag_DragCancelEventId 이벤트 없음
UIA_Drag_DragCompleteEventId 이벤트 없음

 

컨트롤 형식 및 지원되는 컨트롤 패턴

DropTarget 컨트롤 패턴

UI 자동화 컨트롤 패턴 개요

UI 자동화 트리 개요

끌어서 놓기 지원 UI 자동화