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