UI 자동화 Selection 컨트롤 패턴 구현
참고 항목
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows 자동화 API: UI 자동화를 참조하세요.
이 항목에서는 이벤트 및 속성에 대한 정보를 포함하여 ISelectionProvider를 구현하기 위한 지침 및 규칙을 제공합니다. 추가 참조에 대한 링크는 항목 끝에 나열되어 있습니다.
SelectionPattern 컨트롤 패턴은 선택 가능한 자식 항목 컬렉션에 컨테이너 역할을 하는 컨트롤을 지원하는 데 사용됩니다. 이 요소의 자식 항목은 ISelectionItemProvider를 구현해야 합니다. 이 컨트롤 패턴을 구현하는 컨트롤의 예제를 보려면 Control Pattern Mapping for UI Automation Clients을 참조하세요.
구현 지침 및 규칙
Selection 컨트롤 패턴을 구현할 때는 다음 지침 및 규칙에 유의하세요.
ISelectionProvider 를 구현하는 컨트롤을 통해 자식 항목을 하나 또는 여러 개 선택할 수 있습니다. 예를 들어 목록 상자, 목록 뷰, 트리 뷰는 여러 개의 선택을 지원하는 반면 콤보 상자, 슬라이더, 라디오 단추 그룹은 단일 선택을 지원합니다.
볼륨 슬라이더 컨트롤과 같이 최소, 최대, 연속 범위를 가진 컨트롤은 IRangeValueProvider 대신 ISelectionProvider를 구현해야 합니다.
표시 속성 대화 상자의 화면 해상도 슬라이더 또는 색 선택 선택 컨트롤과 같이 IRawElementProviderFragmentRoot을 구현하는 하위 컨트롤을 관리하는 단일 선택 컨트롤 Microsoft Word(아래 그림 참조)에서 ISelectionProvider를 구현해야 하며, 해당 자식 항목은 IRawElementProviderFragment 및 ISelectionItemProvider를 모두 구현해야 합니다.
색 견본 문자열 매핑의 예
- 메뉴는 SelectionPattern을 지원하지 않습니다. 그래픽과 텍스트 둘 다 포함된 메뉴 항목을 작업하고(예: Microsoft Outlook에서 보기 메뉴의 미리 보기 창 항목) 상태를 전달해야 하는 경우 IToggleProvider를 구현해야 합니다.
ISelectionProvider에 필요한 멤버
ISelectionProvider 인터페이스에는 다음과 같은 속성, 메서드 및 이벤트가 필요합니다.
필수 멤버 | Type | 주의 |
---|---|---|
CanSelectMultiple | 속성 | AddAutomationPropertyChangedEventHandler 및 RemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다. |
IsSelectionRequired | 속성 | AddAutomationPropertyChangedEventHandler 및 RemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다. |
GetSelection | 메서드 | None |
InvalidatedEvent | 이벤트 | 컨테이너의 선택 항목이 현저히 변경되어 InvalidateLimit 상수가 허용하는 것보다 더 많은 추가 및 제거 이벤트를 보내야 하는 경우에 발생합니다. |
IsSelectionRequired 및 CanSelectMultiple 은 동적 속성일 수 있습니다. 예를 들어, 컨트롤의 초기 상태에서 기본적으로 항목이 선택되지 않을 수 있으며 이는 IsSelectionRequired 가 false
임을 나타냅니다. 그러나 항목이 선택된 후에는 컨트롤에 하나 이상의 항목이 항상 선택되어 있어야 합니다. 마찬가지로, 드문 경우지만 초기화될 때 컨트롤에서 여러 항목이 선택될 수 있지만 이후에는 하나의 선택 항목만 허용됩니다.
예외
공급자는 다음과 같은 예외를 throw해야 합니다.
예외 유형 | 조건 |
---|---|
ElementNotEnabledException | 컨트롤이 사용 설정되지 않은 경우. |
InvalidOperationException | 컨트롤이 숨겨진 경우. |