MenuItem 컨트롤 형식에 대한 UI 자동화 지원
참고 |
---|
이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오. |
이 항목에서는 MenuItem 컨트롤 형식에 대한 Microsoft UI Automation 지원 관련 정보를 제공합니다. 여기서는 컨트롤의 Microsoft UI Automation 트리 구조를 설명하고 MenuItem 컨트롤 형식에 필요한 속성 및 컨트롤 패턴을 제공합니다.
메뉴 컨트롤을 사용하면 요소를 명령 및 이벤트 처리기와 연결하여 계층적으로 구성할 수 있습니다. 일반적인 Microsoft Windows 응용 프로그램의 메뉴 모음은 파일, 편집 및 창과 같은 몇몇 메뉴 항목을 포함하며 각 메뉴 항목은 메뉴를 표시합니다. 메뉴는 새로 만들기, 열기 및 닫기와 같은 메뉴 항목 컬렉션을 포함하며 이런 항목은 추가 메뉴 항목을 표시하거나 클릭할 경우 특정 작업을 수행하도록 확장될 수 있습니다. 메뉴, 메뉴 모음 또는 도구 모음에서 메뉴 항목을 호스팅할 수 있습니다.
다음 단원에서는 MenuItem 컨트롤 형식의 필수 UI Automation 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI Automation 요구 사항은 Windows Presentation Foundation (WPF), Win32, Windows Forms에 관계없이 모든 목록 컨트롤에 적용됩니다.
이 항목에는 다음 단원이 포함되어 있습니다.
- 필수 UI 자동화 트리 구조
- 필수 UI 자동화 속성
- 필수 UI 자동화 컨트롤 패턴
- 메뉴 항목에 대한 UI 자동화 이벤트
- 필수 UI 자동화 이벤트
- 레거시 관련 문제
- 관련 항목
필수 UI 자동화 트리 구조
다음 표에서는 메뉴 항목 컨트롤과 관계가 있는 UI Automation 트리의 컨트롤 뷰 및 콘텐츠 뷰를 보여 주며 각 뷰에 포함될 수 있는 항목에 대해 설명합니다. UI Automation 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하십시오.
컨트롤 뷰 |
콘텐츠 뷰 |
---|---|
MenuItem "도움말"
|
MenuItem "도움말"
|
메뉴 항목 컨트롤의 컨트롤 뷰는 위와 같은 UI Automation 트리 구조를 가집니다. 일반 메뉴와 하위 메뉴 계층 구조를 보다 잘 보여 주기 위해 메뉴 모음의 도움말 메뉴 항목이 포함되어 있습니다.
콘텐츠 뷰의 경우에는 UI Automation 트리에 Menu가 없는데 그 이유는 이 항목이 최종 사용자에게 의미 있는 정보를 제공하지 않기 때문입니다.
필수 UI 자동화 속성
다음 표에서는 값이나 정의가 특히 메뉴 항목 컨트롤에 관련된 UI Automation 속성을 보여 줍니다. UI Automation 속성에 대한 자세한 내용은 클라이언트의 UI 자동화 속성를 참조하십시오.
Property |
값 |
설명 |
---|---|---|
설명을 참조하십시오. |
이 속성의 값은 응용 프로그램의 모든 컨트롤에서 고유해야 합니다. |
|
설명을 참조하십시오. |
전체 컨트롤이 포함된 가장 바깥쪽 사각형입니다. |
|
설명을 참조하십시오. |
경계 사각형이 있는 경우 지원됩니다. 경계 사각형 내의 일부 지점을 클릭할 수 없는 경우 특수화된 적중 테스트를 수행하려면 클릭 가능한 지점을 재정의하여 제공해야 합니다. |
|
설명을 참조하십시오. |
키보드 포커스를 받을 수 있는 컨트롤은 이 속성을 지원해야 합니다. |
|
설명을 참조하십시오. |
메뉴 항목 컨트롤이 UI Automation 트리의 콘텐츠 뷰에 포함되며 자체적으로 이름이 지정됩니다. |
|
Null |
레이블이 없습니다. |
|
MenuItem |
이 값은 모든 UI 프레임워크에서 동일합니다. |
|
"메뉴 항목" |
MenuItem 컨트롤 형식에 해당하는 지역화된 문자열입니다. |
|
True |
메뉴 항목 컨트롤이 UI Automation 트리의 콘텐츠 뷰에 포함되지 않습니다. |
|
True |
메뉴 항목 컨트롤이 항상 UI Automation 트리의 컨트롤 뷰에 포함되어야 합니다. |
필수 UI 자동화 컨트롤 패턴
다음 표에서는 메뉴 항목 컨트롤이 지원해야 하는 UI Automation 컨트롤 패턴을 보여 줍니다. 컨트롤 패턴에 대한 자세한 내용은 UI 자동화 컨트롤 패턴 개요를 참조하십시오.
컨트롤 패턴 속성 |
지원 |
참고 |
---|---|---|
상황에 따라 다름 |
컨트롤을 확장하거나 축소할 수 있으려면 IExpandCollapseProvider를 구현합니다. |
|
상황에 따라 다름 |
컨트롤이 단일 작업이나 명령을 실행하는 경우 IInvokeProvider를 구현합니다. |
|
상황에 따라 다름 |
컨트롤이 설정 또는 해제할 수 있는 옵션을 나타내면 IToggleProvider를 구현합니다. |
|
상황에 따라 다름 |
컨트롤이 여러 메뉴 항목 중 옵션 목록에서 선택하는 데 사용되면 ISelectionItemProvider를 구현합니다. |
메뉴 항목에 대한 UI 자동화 이벤트
다음 표에서는 메뉴 항목 컨트롤과 관련된 Microsoft UI Automation 이벤트를 보여 줍니다.
Event |
지원 |
설명 |
---|---|---|
상황에 따라 다름 |
컨트롤이 Invoke 컨트롤 패턴을 지원하면 발생되어야 합니다. |
|
ToggleStateProperty 속성 변경 이벤트 |
상황에 따라 다름 |
컨트롤이 Toggle 컨트롤 패턴을 지원하면 발생되어야 합니다. |
ExpandCollapseStateProperty 속성 변경 이벤트 |
상황에 따라 다름 |
컨트롤이 Expand Collapse 컨트롤 패턴을 지원하면 발생되어야 합니다. |
상황에 따라 다름 |
없음 |
필수 UI 자동화 이벤트
다음 표에서는 모든 메뉴 항목 컨트롤이 지원해야 하는 UI Automation 이벤트를 보여 줍니다. 이벤트에 대한 자세한 내용은 UI 자동화 이벤트 개요를 참조하십시오.
UI Automation 이벤트 |
지원/값 |
참고 |
---|---|---|
상황에 따라 다름 |
없음 |
|
상황에 따라 다름 |
없음 |
|
상황에 따라 다름 |
없음 |
|
상황에 따라 다름 |
없음 |
|
BoundingRectangleProperty 속성 변경 이벤트 |
필수 |
없음 |
IsOffscreenProperty 속성 변경 이벤트 |
필수 |
없음 |
IsEnabledProperty 속성 변경 이벤트 |
필수 |
없음 |
ExpandCollapseStateProperty 속성 변경 이벤트 |
상황에 따라 다름 |
없음 |
ToggleStateProperty 속성 변경 이벤트 |
상황에 따라 다름 |
없음 |
필수 |
없음 |
|
필수 |
없음 |
레거시 관련 문제
Toggle 패턴은 Win32 메뉴 항목이 선택되어 있으며 Toggle 패턴의 지원이 필요한지 여부를 프로그래밍 방식으로 확인할 수 있는 경우에만 지원됩니다. Win32 메뉴 항목은 메뉴 항목을 선택할 수 있는지 여부를 노출하지 않으므로 메뉴 항목이 선택되지 않은 경우 Invoke 패턴이 지원됩니다. Toggle 패턴만 지원해야 하는 메뉴 항목에 대해서도 항상 Invoke 패턴을 지원하도록 예외가 만들어집니다. 그 이유는 메뉴 항목이 선택되지 않은 경우 Invoke 패턴을 지원하던 요소가 한번 선택된 이후에는 이 패턴을 더 이상 지원하지 않는다는 것을 클라이언트가 혼란스러워하지 않도록 하기 위해서입니다.