문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

SimpleMenu 및 SimpleMenuItem(Blend에서 WPF 지원)

이 페이지는 WPF 프로젝트에만 적용됨

메뉴는 명령 및 이벤트 처리기와 연결된 요소를 계층 구조적으로 구성하는 항목 컨트롤입니다. Blend for Visual Studio에서는 메뉴를 두 번 클릭한 다음 사각형과 같은 개체를 그려서 메뉴에 콘텐츠를 넣을 수 있습니다. 또는 개체 및 타임라인 패널에서 메뉴를 마우스 오른쪽 단추로 클릭한 다음 SimpleMenuItem 추가를 클릭하여 컬렉션에 개별 항목을 추가하거나 데이터에 ItemsSource 바인딩을 클릭하여 데이터 소스에서 MenuItem 요소 컬렉션을 생성할 수도 있습니다. 두 번째 수준 메뉴 항목을 추가하려면 개체 및 타임라인 패널에서 메뉴 항목을 마우스 오른쪽 단추로 클릭한 다음 SimpleMenuItem 추가를 클릭하거나 자산 패널의 스타일 범주에서 사용자 지정 메뉴 항목을 추가합니다.

개체 및 타임라인 패널에서 메뉴 항목을 마우스 오른쪽 단추로 클릭한 다음 텍스트 편집를 클릭하여 메뉴 항목의 텍스트를 편집하거나 메뉴 항목을 두 번 클릭하고 컨트롤을 그려 메뉴 항목을 활성화할 수 있습니다. 아트보드에서 메뉴 항목의 확장된 자식 메뉴 항목을 보려면 개체 및 타임라인 패널에서 부모 메뉴 항목을 마우스 오른쪽 단추로 클릭한 다음 MenuItem 확장을 클릭합니다.



두 항목과 구분 기호가 추가된 후 SimpleMenu 컨트롤의 아트보드 보기

JJ170215.6f7455aa-d548-46a9-b93c-4b1eaefe455d(ko-kr,VS.120).png

SimpleMenu 컨트롤 템플릿은 다음 항목으로 구성됩니다.

  • Grid 패널 - 메뉴 내에 여러 자식 요소를 저장하는 데 사용됩니다. 또한 Grid를 사용하면 응용 프로그램 UI(사용자 인터페이스) 디자이너가 템플릿에 더 많은 요소를 쉽게 추가할 수 있습니다.

  • Border 요소 - 이 템플릿이 적용되는 메뉴 컨트롤의 BorderThickness 속성에 템플릿 바인딩할 수 있는 BorderThickness 속성이 들어 있기 때문에 사용됩니다.

  • StackPanel - Grid 요소 내에 포함되며 메뉴 항목의 레이아웃을 지정하는 데 사용됩니다. 기본적으로 StackPanelOrientation 속성은 Horizontal로 설정됩니다.

SimpleMenuItem 컨트롤 템플릿은 다음 항목으로 구성됩니다.

  • Grid 패널 - 메뉴 항목 내에 여러 자식 요소를 저장하는 데 사용됩니다. 또한 Grid를 사용하면 디자이너가 템플릿에 더 많은 요소를 쉽게 추가할 수 있습니다. Grid 패널에서는 크기 공유의 개념을 사용하므로 각 메뉴 항목의 너비를 메뉴에 있는 다른 모든 메뉴 항목과 일치시킬 수 있습니다.

  • 아이콘으로 이름이 지정된 ContentPresenter 요소 - 이 템플릿이 적용되는 메뉴 항목의 Icon 속성에 바인딩됩니다.

  • GlyphPanel로 이름이 지정된 Grid 패널 - 메뉴 항목이 선택 가능한 항목인 경우 선택 표시를 나타내는 데 사용됩니다. 기본적으로 Glyph 요소는 축소되어 있지만 IsChecked 트리거에 의해 표시됩니다.

  • HeaderHost로 이름이 지정된 ContentPresenter 요소는 이 템플릿이 적용되는 메뉴 항목의 Header 속성에 바인딩됩니다. 이 바인딩은 HeaderHost 요소의 ContentSource 속성에서 설정됩니다.

  • ArrowPanel로 이름이 지정된 Grid 패널 - 메뉴 항목을 확장하는 방법을 제공하는 데 사용됩니다. 기본적으로 ArrowPanel은 축소되어 있지만 Role = SubmenuHeader 트리거에 의해 표시됩니다. 이 트리거는 하위 메뉴 헤더(자식 메뉴 항목이 있는 둘째 수준 또는 하위 수준 메뉴 항목)로 메뉴 항목을 식별합니다.

  • SubMenuPopup으로 이름이 지정된 Popup 요소 - 기존의 모든 자식 메뉴 항목을 저장하는 데 사용됩니다. 이러한 자식 메뉴 항목은 ItemsHost로 표시되는 StackPanel 개체에 배치되므로 이 메뉴 항목에서 자식 메뉴 항목을 배치할 위치를 알 수 있습니다. 메뉴 항목의 정렬을 변경하려면 개체 및 타임라인 패널에서 StackPanel 개체를 마우스 오른쪽 단추로 클릭하고 레이아웃 형식 변경을 가리킨 다음 패널을 선택하여 WrapPanel과 같은 다른 레이아웃 패널을 사용할 수 있습니다.

컨트롤 템플릿의 속성 트리거는 컨트롤이 속성 변경에 응답하도록 하는 데 사용됩니다. 트리거 패널의 항목을 클릭하여 트리거가 활성화될 때 변경되는 속성을 확인할 수 있습니다. 예를 들어 메뉴 항목에 대한 템플릿에서 IsChecked 속성이 True이면 템플릿이 적용되는 메뉴 항목이 선택 가능하게 되어 트리거에 의해 GlyphPanel 요소가 표시됩니다.

SimpleMenu SimpleMenuItem 템플릿에서는 SimpleStyles.xaml 리소스 사전의 다음과 같은 브러시 리소스가 사용됩니다.

  • 메뉴의 Background 속성은 LightBrush를 사용하여 설정되고 IsEnabledFalse일 때에는 DisabledBackgroundBrush를 사용하여 설정됩니다.

  • 메뉴의 BorderBrush 속성은 NormalBorderBrush를 사용하여 설정되고 IsEnabledFalse일 때에는 DisabledBorderBrush를 사용하여 설정됩니다.

  • SubMenuBorder 요소의 Background 속성은 WindowBackgroundBrush를 사용하여 설정됩니다.

  • SubMenuBorder 요소의 BorderBrush 속성은 SolidBorderBrush를 사용하여 설정됩니다.

또한 템플릿에서 시스템 색에 대한 바인딩을 사용하여 컨트롤에서 시스템 기본값을 사용하도록 할 수 있습니다. 대부분의 경우 이렇게 브러시를 변경하여 고유한 디자인을 만들 수 있습니다. 시스템 색을 설정하는 트리거를 편집하여 이 작업을 수행할 수 있습니다.

  • 일반적으로 디자이너가 컨트롤에 시각적 요소를 더 추가할 수 있도록 하려면 템플릿의 루트로 Grid 제어를 사용합니다. Blend은 Grid 컨트롤과 같은 레이아웃 패널을 찾거나 아트 보드에 추가 되는 새 개체가 해당 레이아웃 패널의 자식 개체로 끝날 수 있도록 기본적으로 활성화 합니다.

  • Popup 컨트롤은 다른 모든 컨트롤 위에서 렌더링됩니다. 일반적으로 이 컨트롤은 메뉴에 사용하는 것이 좋습니다. 예를 들어 Popup 컨트롤 자체에는 Placement 속성을 Right로 설정하여 부모 컨트롤에서의 오프셋을 설정할 수 있는 논리가 있습니다. 메뉴의 경우 메뉴의 확장은 부모 컨트롤에 대한 바인딩에 의해 제어됩니다. 메뉴를 제대로 확장하려면 이 바인딩을 유지해야 합니다.

  • 메뉴 항목 템플릿의 루트 Grid 패널에서는 크기 공유의 개념을 사용하므로 각 메뉴 항목의 너비를 메뉴에 있는 다른 모든 메뉴 항목과 일치시킬 수 있습니다. 이 동작을 변경하려면 XAML 보기에서 SharedSizeGroup 속성을 수정해야 합니다. 그 이유는 Blend가 이 속성을 속성 패널에 표시하지 않기 때문입니다. 대부분의 경우에는 메뉴의 크기가 적절하게 조정되므로 SharedSizeGroup 속성을 수정할 필요가 없습니다. 열 또는 메뉴 항목의 콘텐츠를 다시 정렬하는 대신 메뉴 항목 템플릿의 루트 Grid 패널로 요소를 끌어서 메뉴 항목의 모양을 변경하는 것이 가장 좋은 방법입니다.

  • 일부 메뉴 항목 템플릿 트리거에서는 Role이라는 속성을 사용합니다. Role은 메뉴 계층 구조에서 메뉴 항목의 수준에 따라 설정됩니다. 메뉴 항목 템플릿을 수정하면 역할 기반 트리거를 유지해야 할 수 있습니다. 실제 시스템 MenuItem 컨트롤에서 사용하는 템플릿은 SimpleMenuItem보다 훨씬 더 복잡합니다. MenuItem 컨트롤 템플릿은 메뉴 항목의 역할에 의거해 서로 다른 컨트롤 템플릿 사이를 전환하기 위해 스타일을 사용합니다. SimpleMenuItem 는 이를 성취하기 위해 단일 서식 파일을 사용하며 쉽게 편집할 수 있습니다.

  • SimpleMenuItem 템플릿을 편집하려면 리소스 패널에서 SimpleMenuItem 스타일 옆에 있는 리소스 편집 단추를 클릭합니다. 그런 다음 스타일 편집 모드에서 개체 및 타임라인 패널의 Style을 마우스 오른쪽 단추로 클릭하고 템플릿 편집을 가리킨 다음 현재 템플릿 편집이나 복사본 편집을 클릭합니다.

  • 명령에 메뉴 항목을 연결 하는 방법에 대한 내용은 MSDN에서 해당 메뉴 개요 를 확인하십시오.

표시: