UI 자동화 Selection 컨트롤 패턴 구현
참고 |
---|
이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오. |
이 항목에서는 이벤트 및 속성에 대한 정보를 포함하여 ISelectionProvider 구현에 대한 지침 및 규칙을 소개합니다. 추가 참조에 대한 링크는 항목 끝 부분에 나와 있습니다.
SelectionPattern 컨트롤 패턴은 선택 가능한 자식 항목 컬렉션의 컨테이너 기능을 하는 컨트롤을 지원하는 데 사용합니다. 이 요소의 자식 항목은 ISelectionItemProvider를 구현해야 합니다. 이 컨트롤 패턴을 구현하는 컨트롤 예제를 보려면 UI 자동화 클라이언트에 대한 컨트롤 패턴 매핑을 참조하십시오.
이 항목에는 다음 단원이 포함되어 있습니다.
- 구현 지침 및 규칙
- ISelectionProvider의 필수 멤버
- 예외
- 관련 항목
구현 지침 및 규칙
Selection 컨트롤 패턴을 구현하는 경우 다음 지침 및 규칙을 따르십시오.
ISelectionProvider를 구현하는 컨트롤에서는 선택할 수 있는 자식 항목을 한 개 또는 여러 개 허용합니다. 예를 들어 목록 상자, 목록 뷰 및 트리 뷰에서는 여러 개의 선택 항목을 지원하고 콤보 상자, 슬라이더 및 라디오 단추 그룹에서는 단일 선택 항목을 지원합니다.
볼륨 슬라이더 컨트롤과 같이 최소, 최대 및 연속 범위가 있는 컨트롤은 ISelectionProvider 대신 IRangeValueProvider를 구현해야 합니다.
디스플레이 속성 대화 상자의 화면 해상도 슬라이더 또는 Microsoft Word의 색 선택 선택 컨트롤(아래 그림 참조)과 같이 IRawElementProviderFragmentRoot를 구현하는 자식 컨트롤을 관리하는 단일 선택 컨트롤은 ISelectionProvider를 구현해야 하고 이 컨트롤의 자식 항목은 IRawElementProviderFragment와 ISelectionItemProvider를 모두 구현해야 합니다.
색 견본 문자열 매핑의 예
- 메뉴에서는 SelectionPattern을 지원하지 않습니다. 그래픽과 텍스트를 모두 포함하는 메뉴 항목(예: Microsoft Outlook의 보기 메뉴에 있는 미리 보기 창)을 사용하는 경우 상태를 전달하려면 IToggleProvider를 구현해야 합니다.
ISelectionProvider의 필수 멤버
ISelectionProvider 인터페이스 구현에 필요한 속성, 메서드 및 이벤트는 다음과 같습니다.
필수 멤버 |
형식 |
참고 |
---|---|---|
Property |
AddAutomationPropertyChangedEventHandler 및 RemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다. |
|
Property |
AddAutomationPropertyChangedEventHandler 및 RemoveAutomationPropertyChangedEventHandler를 사용하여 속성 변경 이벤트를 지원해야 합니다. |
|
메서드 |
없음 |
|
Event |
컨테이너 내의 선택이 크게 변경되어 InvalidateLimit 상수가 허용하는 것보다 많은 추가 및 제거 이벤트를 전송해야 하는 경우 발생합니다. |
IsSelectionRequired 및 CanSelectMultiple 속성은 동적일 수 있습니다. 예를 들어 컨트롤의 초기 상태에서 기본적으로 선택된 항목이 없을 수 있으며 이는 IsSelectionRequired가 false임을 의미합니다. 그러나 항목이 선택된 후에는 컨트롤에 선택된 항목이 항상 적어도 하나 이상 있어야 합니다. 드문 경우이긴 하지만 비슷한 예로, 초기화할 때 컨트롤에서 여러 항목을 선택할 수 있지만 나중에는 단일 선택만이 가능한 경우도 있습니다.
예외
공급자는 다음 예외를 throw해야 합니다.
예외 형식 |
조건 |
---|---|
컨트롤을 사용할 수 없는 경우 |
|
컨트롤이 숨겨진 경우 |