每当我将一个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>
答案 0 :(得分:2)
您需要为该命令附加一些CommandBinding
,否则将被禁用
确定RoutedCommand是否可以在当前命令目标上执行的实际逻辑不包含在CanExecute方法中,而是CanExecute引发PreviewCanExecute和CanExecute事件,这些事件通过元素树进行隧道和冒泡,以查找具有CommandBinding的对象。如果找到该RoutedCommand的CommandBinding,则调用附加到CommandBinding的CanExecuteRoutedEventHandler。这些处理程序提供编程逻辑,用于确定RoutedCommand是否可以执行。
如果没有CommandBinding
CommandManager.CanExecute
,事件将始终返回为假,您的按钮将被停用