다음을 통해 공유


List 컨트롤 형식에 대한 UI 자동화 지원

참고참고

이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오.

이 항목에서는 List 컨트롤 형식에 대한 UI Automation 지원 관련 정보를 제공합니다. UI Automation에서 컨트롤 형식은 컨트롤이 ControlTypeProperty 속성을 사용하기 위해 만족해야 하는 조건 집합입니다. 조건에는 UI Automation 트리 구조, UI Automation 속성 값 및 컨트롤 패턴에 대한 지침이 포함됩니다.

List 컨트롤 형식을 사용하면 항목을 하나의 단순한 그룹 또는 여러 그룹으로 구성할 수 있으며 사용자가 이러한 그룹에서 항목을 하나 이상 선택하도록 할 수 있습니다. List 컨트롤 형식에 포함할 수 있는 자식 요소의 형식에 대한 제한은 엄격하지 않습니다. 따라서 UI 자동화 공급자에서 선택 항목 컨테이너에 대해 잘 알려진 요소를 지원할 수 있습니다.

다음 단원의 UI Automation 요구 사항은 Windows Presentation Foundation (WPF), Win32, Windows Forms에 관계없이 List 컨트롤 형식을 구현하는 모든 컨트롤에 적용됩니다. 목록 컨테이너 컨트롤은 List 컨트롤 형식을 구현하는 컨트롤의 예입니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 필수 UI 자동화 트리 구조
  • 필수 UI 자동화 속성
  • 필수 UI 자동화 컨트롤 패턴 및 속성
  • 필수 UI 자동화 이벤트
  • 관련 항목

필수 UI 자동화 트리 구조

다음 표에서는 목록 컨트롤과 관계있는 UI Automation 트리의 두 뷰를 보여 주며 각 뷰에 포함될 수 있는 항목을 설명합니다. 컨트롤 뷰에는 컨트롤인 요소만 포함되며, 콘텐츠 뷰에는 트리에서 중복되는 정보가 표시되지 않습니다. 예를 들어 콤보 상자의 레이블에 사용되는 텍스트 컨트롤은 ComboBox NameProperty로 노출됩니다. 텍스트 컨트롤은 컨트롤 뷰를 통해 이 방식으로 이미 노출되었기 때문에 두 번 노출할 필요가 없으므로 콘텐츠 보기에서는 제거됩니다. UI Automation 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하십시오.

컨트롤 뷰

콘텐츠 뷰

컨트롤에 해당하는 요소가 포함됩니다.

보조 기술이 최종 사용자에게 의미 있는 최소의 정보 집합으로 작업할 수 있도록 트리에서 중복되는 정보가 제거됩니다.

List

  • DataItem(0개 이상)

  • ListItem(0개 이상)

  • Group(0개 이상)

  • ScrollBar(0, 1 또는 2개)

List

  • DataItem(0개 이상)

  • ListItem(0개 이상)

  • Group(0개 이상)

List 컨트롤 형식을 구현하는 컨트롤(예: 목록 컨트롤)의 컨트롤 뷰는 다음과 같이 구성됩니다.

  • 목록 컨트롤 내의 0개 이상의 항목(항목은 List Item 또는 Data Item 컨트롤 형식을 기반으로 할 수 있음)

  • 목록 컨트롤 내의 0개 이상의 그룹 컨트롤

  • 0, 1 또는 2개의 스크롤 막대 컨트롤

List 컨트롤 형식을 구현하는 컨트롤(예: 목록 컨트롤)의 콘텐츠 뷰는 다음과 같이 구성됩니다.

  • 목록 컨트롤 내의 0개 이상의 항목(항목은 List Item 또는 Data Item 컨트롤 형식을 기반으로 할 수 있음)

  • 목록 컨트롤 내의 0개 이상의 그룹

목록 컨트롤에는 함께 그룹화된 것 이외의 계층 관계가 있는 항목이 들어 있지 않아야 합니다. 항목이 UI Automation 트리에서 자식 항목을 가지는 경우 목록 컨테이너는 Tree 컨트롤 형식을 기반으로 해야 합니다.

목록 컨트롤 내의 선택 가능 항목은 목록 컨트롤의 UI Automation 트리 하위 항목에서 사용할 수 있습니다. 목록 컨트롤 내의 모든 항목은 같은 선택 그룹에 속해야 합니다. 목록의 선택 가능한 항목은 DataItem 대신에 ListItem 컨트롤 형식으로 노출되어야 합니다.

필수 UI 자동화 속성

다음 표에서는 값이나 정의가 특히 목록 컨트롤에 관련된 UI Automation 속성을 나열합니다. UI Automation 속성에 대한 자세한 내용은 클라이언트의 UI 자동화 속성를 참조하십시오.

UI Automation 속성

참고

AutomationIdProperty

설명을 참조하십시오.

이 속성의 값은 응용 프로그램의 모든 컨트롤에서 고유해야 합니다.

BoundingRectangleProperty

설명을 참조하십시오.

전체 컨트롤이 포함된 가장 바깥쪽 사각형입니다.

ClickablePointProperty

설명을 참조하십시오.

목록 컨트롤에 클릭 가능한 지점(목록으로 포커스가 이동되도록 클릭 가능한 지점)이 있는 경우 해당 지점은 이 속성을 통해 노출됩니다.

IsOffScreen 속성의 값이 true이면 NoClickablePointException이 발생합니다.

IsKeyboardFocusableProperty

설명을 참조하십시오.

키보드 포커스를 받을 수 있는 컨트롤은 이 속성을 지원해야 합니다.

NameProperty

설명을 참조하십시오.

목록 컨트롤 Name 속성의 값은 사용자가 선택해야 하는 옵션 범주를 전달해야 합니다. 이 속성은 일반적으로 정적 텍스트 레이블에서 이름을 가져옵니다. 정적 텍스트 레이블이 없으면 응용 프로그램 개발자가 Name 속성의 값을 노출해야 합니다.

목록 컨트롤에서 이 속성이 필수가 아닌 유일한 경우는 컨트롤을 다른 컨트롤의 하위 트리 안에서 사용하는 경우입니다.

LabeledByProperty

설명을 참조하십시오.

정적 텍스트 레이블이 있는 경우 이 속성은 해당 컨트롤에 대한 참조를 노출해야 합니다.

ControlTypeProperty

List

이 값은 모든 UI 프레임워크에서 동일합니다.

LocalizedControlTypeProperty

"목록"

List 컨트롤 형식에 해당하는 지역화된 문자열입니다.

IsContentElementProperty

True

목록 컨트롤이 항상 UI Automation 트리의 콘텐츠 뷰에 포함됩니다.

IsControlElementProperty

True

목록 컨트롤이 항상 UI Automation 트리의 컨트롤 뷰에 포함됩니다.

IsKeyboardFocusableProperty

True

컨테이너가 키보드 입력을 받을 수 있으려면 이 속성 값이 true여야 합니다.

HelpTextProperty

설명을 참조하십시오.

목록 컨트롤의 도움말 텍스트는 사용자에게 옵션 목록에서 항목을 선택하도록 요청하는 이유를 설명해야 합니다. 예를 들어 "이 목록에서 항목을 선택하면 사용자 모니터의 디스플레이 해상도가 설정됩니다."와 같은 도움말 텍스트가 있을 수 있습니다.

필수 UI 자동화 컨트롤 패턴 및 속성

다음 표에서는 목록 컨트롤이 지원해야 하는 UI Automation 컨트롤 패턴을 나열합니다. 컨트롤 패턴에 대한 자세한 내용은 UI 자동화 컨트롤 패턴 개요를 참조하십시오.

컨트롤 패턴/패턴 속성

지원/값

참고

ISelectionProvider

필수

선택 상태가 컨트롤에 포함된 항목 간에 유지되는 경우 List 컨트롤 형식을 지원하는 모든 컨트롤은 ISelectionProvider를 구현해야 합니다. 컨테이너 내의 항목을 선택할 수 없는 경우에는 Group 컨트롤 형식을 사용해야 합니다.

IsSelectionRequired

상황에 따라 다름

목록 컨트롤에서 항상 항목을 선택해야 하는 것은 아닙니다.

CanSelectMultiple

상황에 따라 다름

목록 컨트롤이 단일 또는 다중 선택 컨테이너일 수 있습니다.

IScrollProvider

상황에 따라 다름

컨테이너의 항목을 스크롤할 수 있는 경우 이 컨트롤을 구현합니다.

IGridProvider

상황에 따라 다름

항목 단위로 표 탐색을 사용할 수 있어야 하는 경우 이 패턴을 구현합니다.

IMultipleViewProvider

상황에 따라 다름

컨트롤이 컨테이너의 항목에 대한 여러 뷰를 지원할 수 있는 경우 이 컨트롤 패턴을 구현합니다.

ITableProvider

절대 지원되지 않음

ITableProvider가 List 컨트롤 형식에 대해 지원되지 않습니다. 컨트롤이 이 컨트롤 패턴을 지원해야 하는 경우 컨트롤은 Data Grid 컨트롤 형식을 기반으로 해야 합니다.

필수 UI 자동화 이벤트

다음 표에서는 모든 목록 컨트롤이 지원해야 하는 UI Automation 이벤트를 나열합니다. 이벤트에 대한 자세한 내용은 UI 자동화 이벤트 개요를 참조하십시오.

UI Automation 이벤트

지원/값

참고

InvalidatedEvent

상황에 따라 다름

없음

LayoutInvalidatedEvent

상황에 따라 다름

없음

BoundingRectangleProperty 속성 변경 이벤트

필수

없음

IsOffscreenProperty 속성 변경 이벤트

필수

없음

IsEnabledProperty 속성 변경 이벤트

필수

없음

CurrentViewProperty 속성 변경 이벤트

상황에 따라 다름

없음

HorizontallyScrollableProperty 속성 변경 이벤트

상황에 따라 다름

없음

HorizontalScrollPercentProperty 속성 변경 이벤트

상황에 따라 다름

없음

HorizontalViewSizeProperty 속성 변경 이벤트

상황에 따라 다름

없음

VerticalScrollPercentProperty 속성 변경 이벤트

상황에 따라 다름

없음

VerticallyScrollableProperty 속성 변경 이벤트

상황에 따라 다름

없음

VerticalViewSizeProperty 속성 변경 이벤트

상황에 따라 다름

없음

AutomationFocusChangedEvent

필수

없음

StructureChangedEvent

필수

없음

참고 항목

참조

List

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요