<Menu>
<MenuItem Width="80" Header="Test">
<MenuItem Header="A"/>
<Separator></Separator>
<MenuItem Header="B">
<ScrollViewer VerticalScrollBarVisibility="Visible" Height="100">
<StackPanel>
<MenuItem Header="B1"></MenuItem>
<MenuItem Header="B2"></MenuItem>
<MenuItem Header="B3"></MenuItem>
<MenuItem Header="B4"></MenuItem>
<MenuItem Header="B5"></MenuItem>
<MenuItem Header="B6"></MenuItem>
<MenuItem Header="B7"></MenuItem>
<MenuItem Header="B8"></MenuItem>
<MenuItem Header="B9"></MenuItem>
<MenuItem Header="B10"></MenuItem>
<MenuItem Header="B11"></MenuItem>
<MenuItem Header="B12"></MenuItem>
<MenuItem Header="B13"></MenuItem>
<MenuItem Header="B14"></MenuItem>
<MenuItem Header="B15"></MenuItem>
<MenuItem Header="B16"></MenuItem>
</StackPanel>
</ScrollViewer>
</MenuItem>
<MenuItem Header="C">
<ScrollViewer VerticalScrollBarVisibility="Visible" Height="100">
<StackPanel>
<MenuItem Header="C1"></MenuItem>
<MenuItem Header="C2"></MenuItem>
<MenuItem Header="C3"></MenuItem>
<MenuItem Header="C4"></MenuItem>
<MenuItem Header="C5"></MenuItem>
<MenuItem Header="C6"></MenuItem>
<MenuItem Header="C7"></MenuItem>
<MenuItem Header="C8"></MenuItem>
<MenuItem Header="C9"></MenuItem>
<MenuItem Header="C10"></MenuItem>
<MenuItem Header="C11"></MenuItem>
<MenuItem Header="C12"></MenuItem>
<MenuItem Header="C13"></MenuItem>
<MenuItem Header="C14"></MenuItem>
<MenuItem Header="C15"></MenuItem>
<MenuItem Header="C16"></MenuItem>
</StackPanel>
</ScrollViewer>
</MenuItem>
<MenuItem Header="D"/>
<MenuItem Header="F"/>
<MenuItem Header="G"/>
<MenuItem Header="H"/>
<MenuItem Header="I"/>
<MenuItem Header="J"/>
<MenuItem Header="K"/>
</MenuItem>
</Menu>
或者你可以在风格中设置一些东西......但是你必须知道你需要多少菜单项......所以我不太关心风格,因为它(至少这个)不适合一般使用。但也许这会给你其他想法或让你开始。
<Style x:Key="MenuWithScroll" TargetType="{x:Type MenuItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<MenuItem Header="B">
<ScrollViewer VerticalScrollBarVisibility="Visible">
<StackPanel>
<MenuItem Header="{Binding title1}"/>
<MenuItem Header="{Binding title2}"/>
<MenuItem Header="{Binding title3}"/>
<MenuItem Header="{Binding title4}"/>
<MenuItem Header="{Binding title5}"/>
</StackPanel>
</ScrollViewer>
</MenuItem>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>