代码之家  ›  专栏  ›  技术社区  ›  Emad Gabriel

如何设置WPF菜单的样式,使第二级导航水平显示而不是垂直显示?

wpf
  •  1
  • Emad Gabriel  · 技术社区  · 15 年前

    我在应用程序的顶部有一个WPF菜单。

    当单击顶级菜单项时,我需要菜单的第二级水平显示,而不是垂直显示“和”保持打开状态(不像普通菜单那样消失)。

    我需要的是类似于下面的屏幕截图 alt text http://img341.imageshack.us/img341/1694/navigationecopy.jpg

    如何设置WPF菜单的样式以改变其上述行为?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Charlie    15 年前

    好吧,在尝试了这个之后,我不认为我们要重新模板化 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