Share via


Como: Add a Command to a MenuItem

O exemplo a seguir mostra como configurar uma MenuItem como a origem de comando para o comando Paste. Para obter mais informações sobre comandos, consulte Visão geral de Comando.

Exemplo

MenuItem como Button e Hyperlink, implementa ICommandSource. Duas propriedades que ICommandSource a exposição são Command e CommandTarget. Command o comando que será chamado e CommandTarget é o elemento onde roteamento de eventos será iniciado quando o comando é chamado. Se CommandTarget não estiver definido, o elemento que tenha o foco do teclado será o conjunto como o destino.

A classe de implementação de ICommandSource Define o que significa para o comando a ser invocado. MenuItem e Button definir o Click evento sistema autônomo o meio para invocar o comando. Se o comando não puder ser executado no determinado CommandTarget, o MenuItem será desativado. Quando o comando puder executar no CommandTarget, o MenuItem será ativado.

Neste exemplo, um MenuItem será criado no main Window do aplicativo. The Command propriedade é conjunto para o Paste comando. CommandTarget não está definido na MenuItem; Portanto, o destino do comando será o elemento que possui o foco do teclado.

Como a classe TextBox fornece lógica para o comando Paste, um CommandBinding não é necessário. Se o controle tratador do comando não fornecer lógica para a execução do comando, um CommandBinding será necessário para associar a ExecutedRoutedEventHandler e CanExecuteRoutedEventHandler ao RoutedCommand.

<Window x:Class="SDKSamples.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="MenuItemCommandTask"
    >
    <DockPanel>
      <Menu DockPanel.Dock="Top">
        <MenuItem Command="ApplicationCommands.Paste" Width="75" />
      </Menu>
      <TextBox BorderBrush="Black" BorderThickness="2" Margin="25"
               TextWrapping="Wrap">
        The MenuItem will not be enabled until
        this TextBox gets keyboard focus  
      </TextBox>
    </DockPanel>
</Window>

Consulte também

Conceitos

Visão geral de Comando

Input Overview

Referência

ApplicationCommands