如何获取菜单项命令CanExecute在使用图像和文本时应用

时间:2016-07-06 18:44:07

标签: wpf xaml menuitem

如果我转换我的菜单代码:

let cmd: [UInt8] = [27, 7]

要:

<MenuItem Header="Remove Special Event" 
          Command="{Binding RemoveSpecialEventCommand, Mode=OneWay}" />

现在<MenuItem Command="{Binding RemoveSpecialEventCommand, Mode=OneWay}"> <MenuItem.Header> <StackPanel Orientation="Horizontal"> <Image Source="Images/RemoveSpecialEvent.png" Stretch="None" Margin="0,0,5,0"/> <TextBlock>Remove Special Event</TextBlock> </StackPanel> </MenuItem.Header> </MenuItem> Command未应用于菜单项。它们都已启用。

更新

  

我并不特别希望这能奏效。

有效!

Menu

1 个答案:

答案 0 :(得分:1)

我无法重现您的问题,而且我会告诉您它已完全禁用,但不会使文字变灰。我想这可能是一个主题。

这是您可以尝试的一件事:不是给Header属性一个可视树片段,而是尝试模板化普通字符串标题内容。

<MenuItem
    Header="Remove Special Event"
    Command="{Binding RemoveSpecialEventCommand, Mode=OneWay}"
    >
    <MenuItem.HeaderTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Image 
                    Source="Images/RemoveSpecialEvent.png" 
                    Stretch="None" 
                    Margin="0,0,5,0"
                    />
                <ContentControl 
                    Content="{Binding}" 
                    />
            </StackPanel>
        </DataTemplate>
    </MenuItem.HeaderTemplate>
</MenuItem>

我并不特别希望这能奏效。