비고
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows Automation API: UI 자동화참조하세요.
보조 기술 제품 및 테스트 스크립트는 UI 자동화 트리를 탐색하여 UI(사용자 인터페이스) 및 해당 요소에 대한 정보를 수집합니다.
UI 자동화 트리 내에는 현재 데스크톱을 나타내고 자식 요소가 애플리케이션 창을 나타내는 루트 요소(RootElement)가 있습니다. 이러한 각 자식 요소에는 메뉴, 단추, 도구 모음 및 목록 상자와 같은 UI 부분을 나타내는 요소가 포함될 수 있습니다. 이러한 요소는 목록 항목과 같은 요소를 포함할 수 있습니다.
UI 자동화 트리는 고정된 구조가 아니며 수천 개의 요소를 포함할 수 있으므로 전체에서 거의 볼 수 없습니다. 해당 부분은 필요에 따라 빌드되며 요소가 추가, 이동 또는 제거될 때 변경될 수 있습니다.
UI 자동화 공급자는 루트(일반적으로 창에서 호스트됨) 및 하위 트리로 구성된 조각 내의 항목 간에 탐색을 구현하여 UI 자동화 트리를 지원합니다. 그러나 공급자는 한 컨트롤에서 다른 컨트롤로의 탐색에 관심이 없습니다. 이는 기본 창 공급자의 정보를 사용하여 UI 자동화 코어에서 관리됩니다.
자동화 트리 보기
UI 자동화 트리를 필터링하여 특정 클라이언트와 관련된 개체만 AutomationElement 포함하는 뷰를 만들 수 있습니다. 이 방법을 사용하면 클라이언트가 UI 자동화를 통해 제공되는 구조를 특정 요구 사항에 맞게 사용자 지정할 수 있습니다.
클라이언트에는 범위를 지정하고 필터링하는 두 가지 방법으로 보기를 사용자 지정할 수 있습니다. 범위 지정은 기본 요소에서 시작하여 보기의 범위를 정의합니다. 예를 들어 애플리케이션은 데스크톱의 직접 자식만 찾거나 애플리케이션 창의 모든 하위 항목만 찾으려고 할 수 있습니다. 필터링은 뷰에 포함할 요소의 형식을 정의합니다.
UI 자동화 공급자는 IsControlElementProperty 속성 및 IsContentElementProperty 속성을 포함한 요소의 속성을 정의하여 필터링을 지원합니다.
UI 자동화는 세 가지 기본 보기를 제공합니다. 이러한 뷰는 수행된 필터링 유형에 의해 정의됩니다. 뷰의 범위는 애플리케이션에 의해 정의됩니다. 또한 애플리케이션은 속성에 다른 필터를 적용할 수 있습니다. 예를 들어 컨트롤 뷰에 활성화된 컨트롤만 포함할 수 있습니다.
원시 보기
UI 자동화 트리의 원시 뷰는 데스크톱이 루트인 개체의 AutomationElement 전체 트리입니다. 원시 뷰는 애플리케이션의 네이티브 프로그래밍 구조를 밀접하게 따르므로 사용 가능한 가장 자세한 보기입니다. 또한 트리의 다른 보기가 빌드되는 기준이기도 합니다. 이 보기는 기본 UI 프레임워크에 따라 달라지므로 WPF 단추의 원시 보기는 Win32 단추와 다른 원시 보기를 갖습니다.
원시 뷰는 속성을 지정하지 않고 요소를 검색하거나 트리를 탐색하는 데 사용하여 RawViewWalker 가져옵니다.
컨트롤 뷰
UI 자동화 트리의 컨트롤 뷰는 최종 사용자에게 UI를 설명하고 최종 사용자가 인식하는 UI 구조에 밀접하게 매핑되므로 최종 사용자가 애플리케이션과 상호 작용하도록 지원하는 보조 기술 제품의 작업을 간소화합니다.
컨트롤 뷰는 원시 뷰의 하위 집합입니다. 여기에는 최종 사용자가 대화형으로 이해하거나 UI에서 컨트롤의 논리적 구조에 기여하는 원시 보기의 모든 UI 항목이 포함됩니다. UI의 논리적 구조에 기여하지만 대화형이 아닌 UI 항목의 예는 목록 보기 헤더, 도구 모음, 메뉴 및 상태 표시줄과 같은 항목 컨테이너입니다. 단순히 레이아웃 또는 장식용으로 사용되는 비대화형 항목은 컨트롤 보기에 표시되지 않습니다. 예를 들어 대화 상자에서 컨트롤을 배치하는 데만 사용되었지만 그 자체에는 정보가 포함되지 않은 패널이 있습니다. 컨트롤 뷰에 표시되는 비대화형 항목은 대화 상자에서 정보와 정적 텍스트가 있는 그래픽입니다. 컨트롤 뷰에 포함된 비대화형 항목은 키보드 포커스를 받을 수 없습니다.
컨트롤 뷰는 IsControlElement 속성이 true
로 설정된 요소를 검색하거나 ControlViewWalker를 사용하여 트리를 탐색하여 가져옵니다.
콘텐츠 보기
UI 자동화 트리의 콘텐츠 뷰는 컨트롤 뷰의 하위 집합입니다. 여기에는 키보드 포커스를 받을 수 있는 UI 항목과 UI 항목의 레이블이 아닌 일부 텍스트를 포함하여 사용자 인터페이스의 실제 정보를 전달하는 UI 항목이 포함되어 있습니다. 예를 들어 드롭다운 콤보 상자의 값은 최종 사용자가 사용하는 정보를 나타내므로 콘텐츠 보기에 표시됩니다. 콘텐츠 보기에서 콤보 상자와 목록 상자는 둘 다 하나 또는 둘 이상의 항목을 선택할 수 있는 UI 항목의 컬렉션으로 표시됩니다. 항상 열려 있고 확장 및 축소할 수 있다는 사실은 사용자에게 표시되는 데이터 또는 콘텐츠를 표시하도록 설계되었기 때문에 콘텐츠 보기에서 관련이 없습니다.
콘텐츠 뷰는 IsContentElement 속성이 설정된 요소를 true
에서 검색하거나 ContentViewWalker을 사용해 트리를 탐색하여 얻습니다.