KeyCommand已禁用MenuItem

时间:2014-02-14 10:28:03

标签: c# wpf icons menuitem

每当我将一个Command添加到<MenuItem> MenuItem时,前景会变灰。如果我删除命令它的样式正常。

似乎MenuItem在使用命令时被禁用。

这可能只是造型问题吗?我正在使用MahApps.Metro设置我的应用程序的样式。

<MenuItem Header="_SETTINGS" Margin="0,0,10,0">
                <MenuItem Header="_View Settings" Command="ApplicationCommands.Properties">
                    <MenuItem.Icon>
                        <Image Height="16" Width="16" Source="../Images/settings-26.png"></Image>
                    </MenuItem.Icon>
                </MenuItem>
            </MenuItem>

1 个答案:

答案 0 :(得分:2)

您需要为该命令附加一些CommandBinding,否则将被禁用

RoutedCommand.CanExecute

  

确定RoutedCommand是否可以在当前命令目标上执行的实际逻辑不包含在CanExecute方法中,而是CanExecute引发PreviewCanExecute和CanExecute事件,这些事件通过元素树进行隧道和冒泡,以查找具有CommandBinding的对象。如果找到该RoutedCommand的CommandBinding,则调用附加到CommandBinding的CanExecuteRoutedEventHandler。这些处理程序提供编程逻辑,用于确定RoutedCommand是否可以执行。

如果没有CommandBinding CommandManager.CanExecute,事件将始终返回为假,您的按钮将被停用