2012-03-30 30 views
92

Quiero crear una barra de menú idéntica a la de los formularios de Windows en mi aplicación WPF.Crear una barra de menú en WPF?

¿Cómo voy a hacer esto?

La opción del menú en la caja de herramientas de controles de WPF solo da una barra en blanco.

Respuesta

172
<DockPanel> 
    <Menu DockPanel.Dock="Top"> 
     <MenuItem Header="_File"> 
      <MenuItem Header="_Open"/> 
      <MenuItem Header="_Close"/> 
      <MenuItem Header="_Save"/> 
     </MenuItem> 
    </Menu> 
    <StackPanel></StackPanel> 
</DockPanel> 
+3

¿Por qué hay subraya? ¿Por qué están ocultos? – C4u

+13

@ C4u: Aquellos configuran las teclas de método abreviado (por ejemplo, Alt + f para "archivo") –

38

Sí, un menú le da la barra pero no le da ningún artículo en su para poner en la barra. Es necesario algo así como (de una de mis propios proyectos):

<!-- 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> 
    : 
+33

Hola, en lugar de ese DockPanel anidado, puedes usar el atributo InputGestureText. Por ejemplo '' – AlanFoster

+2

@AlanFoster Debe publicar su propia respuesta ** incluyendo ** esa pista. Casi lo extraño y es una pena! Puede reutilizar la configuración desde la respuesta aceptada. Es el más simple, diría yo. Y mejor formateado. –

6
<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> 
1
<Container> 
    <Menu> 
     <MenuItem Header="File"> 
      <MenuItem Header="New"> 
       <MenuItem Header="File1"/> 
       <MenuItem Header="File2"/> 
       <MenuItem Header="File3"/> 
      </MenuItem> 
      <MenuItem Header="Open"/> 
      <MenuItem Header="Save"/> 
     </MenuItem> 
    </Menu> 
</Container> 
Cuestiones relacionadas