다음을 통해 공유


MenuItem 컨트롤 형식

이 항목에서는 MenuItem 컨트롤 형식에 대한 Microsoft UI 자동화 지원에 대한 정보를 제공합니다.

메뉴 컨트롤은 명령 및 이벤트 처리기와 연결된 요소의 계층적 구성을 허용합니다. 일반적인 Windows 응용 프로그램에서 메뉴 모음에는 여러 메뉴 항목(예: 파일, 편집)이 포함되며 각 메뉴 항목에는 메뉴가 표시됩니다. 메뉴에는 추가 메뉴 항목을 표시하거나 클릭할 때 특정 작업을 수행하도록 확장할 수 있는 메뉴 항목(예: , 열기닫기)의 컬렉션이 포함되어 있습니다.

다음 섹션에서는 MenuItem 컨트롤 형식에 필요한 UI 자동화 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI 자동화 요구 사항은 UI 프레임워크/플랫폼이 컨트롤 형식 및 컨트롤 패턴에 대한 UI 자동화 지원을 통합하는 모든 메뉴 항목 컨트롤에 적용됩니다.

이 항목에는 다음 섹션이 포함되어 있습니다.

일반적인 트리 구조

다음 표에서는 메뉴 항목 컨트롤과 관련된 UI 자동화 트리의 일반적인 컨트롤 및 콘텐츠 뷰를 보여 줍니다. 각 보기에 포함될 수 있는 항목에 대해 설명합니다. UI 자동화 트리에 대한 자세한 내용은 UI 자동화 트리 개요참조하세요.

컨트롤 뷰 콘텐츠 보기
  • MenuItem "도움말"
    • 메뉴(도움말 메뉴 항목의 하위 메뉴)
      • MenuItem "도움말 항목"
      • MenuItem "메모장 정보"
  • MenuItem "도움말"
    • MenuItem "도움말 항목"
    • MenuItem "메모장 정보"

 

메뉴 항목 컨트롤의 컨트롤 뷰에는 위에 표시된 UI 자동화 트리 구조가 있습니다. 메뉴 모음의 도움말 메뉴 항목이 추가되어 구조를 더 잘 보여 줍니다.

콘텐츠 보기의 경우 메뉴 최종 사용자에게 의미 있는 정보를 전달하지 않으므로 UI 자동화 트리에 없습니다.

관련 속성

다음 표에서는 값 또는 정의가 MenuItem 컨트롤 형식과 특히 관련된 UI 자동화 속성을 나열합니다. UI 자동화 속성에 대한 자세한 내용은 UI 자동화 요소속성 검색을 참조하세요.

UI 자동화 속성 노트
UIA_AutomationIdPropertyId 참고를 참조하세요. 이 속성의 값은 UI 자동화 트리의 원시 뷰에 있는 모든 피어 요소 간에 고유해야 합니다. 요소가 사용자 인터페이스의 여러 인스턴스에서 일관된 것으로 알려진 경우 메뉴 항목에 대한 AutomationId 속성을 할당합니다. 메뉴 항목이 동적으로 채워지고 예측할 수 없는 경우 AutomationId 속성을 비워 둡니다.
UIA_BoundingRectanglePropertyId 참고를 참조하세요. 전체 컨트롤을 포함하는 가장 바깥쪽 사각형입니다.
UIA_ClickablePointPropertyId 참고를 참조하세요. 경계 사각형이 있는 경우 지원됩니다. 경계 사각형 내의 모든 지점을 클릭할 수 없는 경우 요소는 특수 적중 테스트를 수행하고, 재정의하고, 클릭 가능한 지점을 제공합니다.
UIA_ControlTypePropertyId menuItem
UIA_IsContentElementPropertyId 메뉴 항목 컨트롤은 항상 UI 자동화 트리의 콘텐츠 뷰에 포함됩니다.
UIA_IsControlElementPropertyId 메뉴 항목 컨트롤은 항상 UI 자동화 트리의 컨트롤 뷰에 포함됩니다.
UIA_IsKeyboardFocusablePropertyId 참고를 참조하세요. 컨트롤이 키보드 포커스를 받을 수 있는 경우 이 속성을 지원해야 합니다.
UIA_LocalizedControlTypePropertyId 참고를 참조하세요. MenuItem 컨트롤 형식에 해당하는 지역화된 문자열입니다. 기본값은 en-US 또는 영어(미국)의 "메뉴 항목"입니다.
UIA_NamePropertyId 참고를 참조하세요. 메뉴 항목 컨트롤의 이름은 레이블을 지정하는 데 사용되는 텍스트입니다.

 

필수 컨트롤 패턴

다음 표에서는 메뉴 항목 컨트롤에서 지원하는 데 필요한 UI 자동화 컨트롤 패턴을 나열합니다. 컨트롤 패턴에 대한 자세한 내용은 UI 자동화 컨트롤 패턴 개요참조하세요.

컨트롤 패턴 지원 노트
IExpandCollapseProvider 따라 달라 집니다 컨트롤을 확장하거나 축소할 수 있는 경우 IExpandCollapseProvider구현합니다.
IInvokeProvider 따라 달라 집니다 컨트롤이 단일 작업 또는 명령을 실행하는 경우 IInvokeProvider구현합니다.
ISelectionItemProvider 따라 달라 집니다 컨트롤을 사용하여 메뉴 항목 중 옵션 목록에서 선택하는 경우 ISelectionItemProvider구현합니다.
IToggleProvider 따라 달라 집니다 컨트롤이 설정 또는 해제할 수 있는 옵션을 나타내는 경우 IToggleProvider구현합니다.

 

필수 이벤트

다음 표에서는 메뉴 항목 컨트롤을 지원하는 데 필요한 UI 자동화 이벤트를 나열합니다. 이벤트에 대한 자세한 내용은 UI 자동화 이벤트 개요참조하세요.

UI 자동화 이벤트 노트
UIA_AutomationFocusChangedEventId
속성 변경 이벤트를 UIA_BoundingRectanglePropertyId.
UIA_ExpandCollapseExpandCollapseStatePropertyId 속성 변경 이벤트입니다. 컨트롤이 ExpandCollapse 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_Invoke_InvokedEventId 컨트롤이 Invoke 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_IsEnabledPropertyId. 컨트롤이 IsEnabled 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_IsOffscreenPropertyId 속성 변경 이벤트입니다. 컨트롤이 IsOffscreen 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_SelectionItem_ElementAddedToSelectionEventId 컨트롤이 SelectionItem 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_SelectionItem_ElementRemovedFromSelectionEventId 컨트롤이 SelectionItem 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_SelectionItem_ElementSelectedEventId 컨트롤이 SelectionItem 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId 속성 변경 이벤트입니다. 컨트롤이 토글 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.

 

레거시 문제

Microsoft Win32 메뉴 항목의 경우 토글 컨트롤 패턴은 메뉴 항목을 선택한 경우에만 지원되며 토글 컨트롤 패턴에 대한 지원이 필요한지 여부를 프로그래밍 방식으로 확인할 수 있습니다. Win32 메뉴 항목은 선택 가능한지 여부를 노출하지 않으므로 메뉴 항목을 선택하지 않으면 Invoke 컨트롤 패턴이 지원됩니다. Toggle 컨트롤 패턴을 지원하는 데만 필요한 메뉴 항목에도 Invoke 컨트롤 패턴이 항상 지원됩니다. 따라서 Invoke 컨트롤 패턴을 지원하는 메뉴 항목(메뉴 항목이 선택 취소된 경우)이 더 이상 해당 패턴을 지원하지 않는 경우 클라이언트가 혼동하지 않습니다.

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요