컨트롤 패턴 끌기
속성 및 메서드에 대한 정보를 포함하여 IDragProvider를 사용하여 끌기 컨트롤 패턴을 구현하기 위한 지침과 규칙을 제공합니다. 끌기 컨트롤 패턴은 끌기 가능한 컨트롤 또는 끌기 가능한 항목이 있는 컨트롤을 지원하는 데 사용됩니다.
구현 지침 및 규칙
끌기 컨트롤 패턴을 구현할 때 다음 지침 및 규칙을 사용합니다.
-
IDragProvider 인터페이스는 소스/대상 스타일과 원본 전용 스타일이라는 두 가지 끌기 스타일을 지원합니다. 끌어서 놓기 시나리오에 가장 적합한 스타일을 선택해야 합니다.
- 원본/대상 스타일: 가능한 각 놓기 대상은 IDropTargetProvider 인터페이스를 구현하는 요소로 표시됩니다. 끌기 작업 중 Microsoft UI 자동화 이벤트는 끌어서 놓는 대상 요소에서 발생합니다.
- 원본 전용 스타일: 놓기 대상은 UI 자동화 요소로 표현되지 않습니다. 끌기 작업 중에 이벤트는 끌기 중인 요소에서만 발생합니다.
- IDragProvider 는 끌기 작업을 모니터링하기 위한 읽기 전용 인터페이스입니다. 끌기 작업을 제어하는 데 사용할 수 없습니다. 컨트롤에 마우스 입력을 전송하여 끌기 작업을 자동화할 수 있습니다.
- IDragProvider::IsGrabbed 속성이 필요합니다.
- IDragProvider::D ropEffect 및 IDragProvider::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 | 이벤트 | 없음 |
관련 항목