在WPF中创建菜单栏?

dec*_*on1 115 c# wpf xaml

我想在我的WPF应用程序中创建一个与Windows窗体中的菜单栏相同的菜单栏.

我该怎么做?

WPF控件工具箱中的菜单选项仅提供空白栏.

ion*_*den 221

<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="_File">
            <MenuItem Header="_Open"/>
            <MenuItem Header="_Close"/>
            <MenuItem Header="_Save"/>
        </MenuItem>
    </Menu>
    <StackPanel></StackPanel>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

  • @ C4u:那些设置了快捷键(例如,Alt + f代表"文件") (25认同)
  • 为什么有下划线?他们为什么隐藏? (8认同)
  • 我在 https://youtu.be/bdmVWGjpA_8 准备了有关 WPF 菜单、命令绑定添加快捷键等的综合教程 (2认同)

pax*_*blo 44

是的,菜单会为您提供栏,但它不会为您提供任何项目.你需要一些东西(来自我自己的一个项目):

<!-- Menu. -->
<Menu Width="Auto" Height="20" Background="#FFA9D1F4" DockPanel.Dock="Top">
    <MenuItem Header="_Emulator">
    <MenuItem Header="Load..." Click="MenuItem_Click" />
    <MenuItem Header="Load again" Click="menuEmulLoadLast" />
    <Separator />
    <MenuItem Click="MenuItem_Click">
        <MenuItem.Header>
            <DockPanel>
                <TextBlock>Step</TextBlock>
                <TextBlock Width="10"></TextBlock>
                <TextBlock HorizontalAlignment="Right">F2</TextBlock>
            </DockPanel>
        </MenuItem.Header>
    </MenuItem>
    :
Run Code Online (Sandbox Code Playgroud)

  • 您好,而不是嵌套的DockPanel,您可以使用属性InputGestureText.例如`<MenuItem Header ="Step"Click ="MenuItem_Click"InputGestureText ="F2"/>` (39认同)
  • @AlanFoster您应该发布自己的答案**,包括**提示.我几乎错过了它,这是一个耻辱!您可以重复使用已接受答案中的设置.我会说,这是最简单的一个.最好格式化. (3认同)

小智 8

<StackPanel VerticalAlignment="Top">
    <Menu Width="Auto" Height="20">
        <MenuItem Header="_File">
            <MenuItem x:Name="AppExit" Header="E_xit" HorizontalAlignment="Left" Width="140" Click="AppExit_Click"/>
        </MenuItem>
        <MenuItem Header="_Tools">
            <MenuItem x:Name="Options" Header="_Options" HorizontalAlignment="Left" Width="140"/>
        </MenuItem>
        <MenuItem Header="_Help">
            <MenuItem x:Name="About" Header="&amp;About" HorizontalAlignment="Left" Width="140"/>
        </MenuItem>
    </Menu>
    <Label Content="Label"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)