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>