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를 구현해야 하며, 해당 자식 항목은 IRawElementProviderFragmentISelectionItemProvider를 모두 구현해야 합니다.

Color picker with yellow highlighted. 색 견본 문자열 매핑의 예

  • 메뉴는 SelectionPattern을 지원하지 않습니다. 그래픽과 텍스트 둘 다 포함된 메뉴 항목을 작업하고(예: Microsoft Outlook에서 보기 메뉴의 미리 보기 창 항목) 상태를 전달해야 하는 경우 IToggleProvider를 구현해야 합니다.

ISelectionProvider에 필요한 멤버

ISelectionProvider 인터페이스에는 다음과 같은 속성, 메서드 및 이벤트가 필요합니다.

필수 멤버 Type 주의
CanSelectMultiple 속성 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다.
IsSelectionRequired 속성 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다.
GetSelection 메서드 None
InvalidatedEvent 이벤트 컨테이너의 선택 항목이 현저히 변경되어 InvalidateLimit 상수가 허용하는 것보다 더 많은 추가 및 제거 이벤트를 보내야 하는 경우에 발생합니다.

IsSelectionRequiredCanSelectMultiple 은 동적 속성일 수 있습니다. 예를 들어, 컨트롤의 초기 상태에서 기본적으로 항목이 선택되지 않을 수 있으며 이는 IsSelectionRequiredfalse임을 나타냅니다. 그러나 항목이 선택된 후에는 컨트롤에 하나 이상의 항목이 항상 선택되어 있어야 합니다. 마찬가지로, 드문 경우지만 초기화될 때 컨트롤에서 여러 항목이 선택될 수 있지만 이후에는 하나의 선택 항목만 허용됩니다.

예외

공급자는 다음과 같은 예외를 throw해야 합니다.

예외 유형 조건
ElementNotEnabledException 컨트롤이 사용 설정되지 않은 경우.
InvalidOperationException 컨트롤이 숨겨진 경우.

참고 항목