好吧,在尝试了这个之后,我不认为我们要重新模板化
Menu
菜单
是一个非常复杂的控件。更好的办法是避免完全使用菜单,使用与您描述的行为类似的控件(选定的项保持打开状态,可以水平显示其子项,等等)。这个
TabControl
是一个很好的适合,所以我只想用它来代替。下面是一些示例XAML,向您展示了这是如何工作的:
<TabControl VerticalAlignment="Top">
<TabItem Header="MAIN ACTIONS"/>
<TabItem Header="GOALS" IsSelected="True">
<StackPanel Orientation="Horizontal">
<ToggleButton Margin="5">Enter Goals</ToggleButton>
<ToggleButton Margin="5">Edit Goals</ToggleButton>
<ToggleButton IsChecked="True" Margin="5">View Work Plan</ToggleButton>
</StackPanel>
</TabItem>
<TabItem Header="ACTIVITIES"/>
</TabControl>
显然,您需要重新设计
选项卡控件
用字体和颜色来获得你想要的外观。对于子菜单,我实际上使用单选按钮而不是切换按钮,以确保一次只能选择一个(您还需要重新设置单选按钮的模板)。但纵观这个简单的结果,您也会发现这个控件非常适合您的场景:
alt text http://img94.imageshack.us/img94/2358/tabcontrolmenu.png