none
Dúvida menus wpf RRS feed

  • Pergunta

  • Minha aplicação possui um menu com vários menus filhos. Só que quando eu clico em cima do menu pai (File) o evento dos filhos são ativados (Open,New, Save). Como eu posso cancelar no caso do clique no File e só deixar a ativação quando efetivamente o clique for em um dos filhos? Tentei o e.Handled no Evento click do menu File e não funcionou. Abaixo estão os commands dos eventos e a hierarquia do menu. Obrigado.
      
     <Window.CommandBindings>
            <CommandBinding CanExecute="New_CanExecute"
                                     Executed="New_Executed"
                                     Command="New"
                                    x:Name="cmdnew">
            </CommandBinding>
            <CommandBinding CanExecute="Open_CanExecute"
                             Executed="Open_Executed"
                                     Command="Open"
                                    x:Name="cmdopen">
            </CommandBinding>
            <CommandBinding CanExecute="Save_CanExecute"
                             Executed="Save_Executed"
                                     Command="Save"
                                    x:Name="cmdsave">
            </CommandBinding>
        </Window.CommandBindings>

    ...

      <MenuItem Header="File"  Click="MenuItem_Click" >
                       <MenuItem Header="New" Command="New"/>
                        <MenuItem Header="Open" Command="Open"/>
                        <MenuItem Header="Save" Command="Save"/>
                        <Separator/>
                        <MenuItem Header="Exit" />
                   </MenuItem>
    domingo, 14 de setembro de 2008 23:19

Respostas

  • Me parece que você tem um erro aqui:

     

      <MenuItem Header="File"  Click="MenuItem_Click" >

     

    Nesta linha, você tem um handler para o evento Click do menu File. Isso faz que ele seja executado. Tente remover o Handler do item, deixando algo como:

     

      <MenuItem Header="File">

     

    Bruno


    sexta-feira, 17 de outubro de 2008 12:30

Todas as Respostas

  • Me parece que você tem um erro aqui:

     

      <MenuItem Header="File"  Click="MenuItem_Click" >

     

    Nesta linha, você tem um handler para o evento Click do menu File. Isso faz que ele seja executado. Tente remover o Handler do item, deixando algo como:

     

      <MenuItem Header="File">

     

    Bruno


    sexta-feira, 17 de outubro de 2008 12:30
  • Olá Bruce

     

    O que está acontecendo é que Routed Event Click está se estendendo para os filhos

     

    O que você deve fazer é remover o Event Handler do Click do MenuItem "File" e adicionar os EventHandlers para os MenuItems filhos.

     

    Espero ter ajudado

    quinta-feira, 27 de novembro de 2008 15:54