WPF: “ApplicationCommands.New” mostrando a fonte incorreta no caso de MenuItem
Eu sou novo no WPF e estou passando pelos exemplos de Professional WPF no .net 4.5. No capítulo de comandos, há um exemplo em que vários controles podem enviar o mesmo comando. Eu estou usando um Button, CheckBox e MenuItem para acionar o novo comando.
O problema que estou enfrentando é que, se MenuItem for pressionado pela primeira vez, a fonte será exibida corretamente. No entanto, depois de clicar no botão ou CheckBox, clicar em MenuItem me mostra a origem do último botão de controle ou CheckBox, o que foi pressionado. Eu não consegui encontrar o que estava errado com o meu código ou porque este comportamento é mostrado por MenuItem no WPF.
Abaixo está o código.
<Window x:Class="WpfApplication1.CommandSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CommandSample" Height="300" Width="300">
<Window.CommandBindings>
<CommandBinding Command="New" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<StackPanel>
<Button Command="New" MaxWidth="80" MaxHeight="30" Content="{x:Static ApplicationCommands.New}" />
<Menu MaxHeight="30" VerticalAlignment="Top">
<MenuItem Header="File">
<MenuItem Command="New"></MenuItem>
</MenuItem>
</Menu>
<CheckBox Command="New"></CheckBox>
</StackPanel>
</Window>
namespace WpfApplication1 {
public partial class CommandSample: Window {
public CommandSample() {
InitializeComponent();
}
private void CommandBinding_Executed(object sender,ExecutedRoutedEventArgs e)
{
MessageBox.Show("New Command launched by " + e.Source);
}
}
}