에 나는 WPF 응용 프로그램에 대한 몇 가지 XAML에서 일하고 내가 원하는 것을 할을 받고 몇 가지 문제가 발생하고있다.WPF : 중첩 된 메뉴 아이템은 툴바
<!-- Tool Bar Tray -->
<ToolBarTray Name="toolBarTray1" DockPanel.Dock="Top">
<!-- File And Edit Tools -->
<ToolBar Name="toolBar1" Band="1" BandIndex="1">
<!-- Regular Items -->
<Button>A</Button>
<Button>B</Button>
<!-- Overflow Menu For Special Items -->
<MenuItem ToolBar.OverflowMode="Always" Header="Special Items">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</ToolBar>
</ToolBarTray>
내 도구 모음의 오버플로 버튼을 클릭하면, "특수 항목"MenuItem의 중첩 된 요소를 나타내는, 옆에 작은 화살표가 나타납니다 : 여기 내 XAML의 샘플입니다. 그러나 "Special Items"위에 마우스를 올리거나 클릭하려고하면 MenuItems "C"와 "D"가 표시되지 않습니다.
것은 내가 MenuItem을 그냥 메뉴의 외부에서 작동 것이라고 기대했다,하지만 난 단지의 경우, 직선 앞으로 일을하려고 노력했다. 이러한 MenuItem을 메뉴 안에 포함하고 대신이 메뉴에 ToolBar.OverflowMode = "Always"속성을 지정하면 원치 않는 스타일이 생성됩니다. 화살표는 더 이상 존재하지 않으며 하위 메뉴를 활성화하려면 "Special Items"항목을 클릭해야하며 하위 메뉴 위치는 약간 벗어납니다.
무슨 일이 일어나는지 아는 사람이 있습니까?
편집 : 추가 오버플로 메뉴가 나는 (깜짝 놀랄) 요청 정확히 무엇을 생산하고있다. 내가하는 일은 최상위 레벨의 헤더와 항목을 하위 메뉴 수준으로 변환하는 방법입니다. 나는 해결책 (아래)을 위해 MSDN에이 제어 템플릿 예제를 향했다.
편집, 편집 : @gcores (코멘트 토론) : 정말? 내가 놓친 게 있니?
<ToolBar Name="toolBar1" Band="1" BandIndex="4">
<!-- Displayed Buttons -->
<Button>A</Button>
<Button>B</Button>
<!-- Special Items Menu -->
<Menu ToolBar.OverflowMode="Always" >
<MenuItem Style="{StaticResource MenuItemStyle}" Header="Special">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</Menu>
</ToolBar>
이 스 니펫은 저에게 적합하지 않습니다. 하위 메뉴를 표시하려면 '특별'을 클릭해야합니다. 심지어이 문제가 발생 가까이 와서 찾을 수
알다시피, 이것은 제가 처음에 시도한 것입니다. MSDN을 정독하고 Role 속성을 찾았지만 올바르게 변경하는 방법을 알지 못했습니다. 나는 그때 위에 올려 놓은 quick-fix cut and paste 괴물을 발견했다. 나는 wpf에 처음이다. 코드를 시도했지만 불행히도 마우스 오버시 하위 메뉴가 표시되지 않습니다. 좀 더 조사하겠습니다. –
오 MenuItem을 메뉴에 랩핑하십시오. 그렇지 않으면 기능이 없습니다. 나는 그것을 시도하고 그것을 작동합니다. – gcores
OP의 "편집, 편집"을 참조하십시오. –