如何获取菜单项命令 CanExecute 在使用图像和文本时应用
How to get menu items command CanExecute to apply when using images and text
如果我从以下位置转换我的菜单代码:
<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
CanExecute
未应用于菜单项。它们都已启用。
更新
I don't particularly expect this to work.
成功了!
我无法重现您的问题,我会相信您的话,它已完全禁用,但不会使文本变灰。我想这可能是一个主题。
您可以尝试一件事:不要给 Header
属性 可视化树片段,而是尝试对纯字符串 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>
我并不特别希望它能奏效。
如果我从以下位置转换我的菜单代码:
<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
CanExecute
未应用于菜单项。它们都已启用。
更新
I don't particularly expect this to work.
成功了!
我无法重现您的问题,我会相信您的话,它已完全禁用,但不会使文本变灰。我想这可能是一个主题。
您可以尝试一件事:不要给 Header
属性 可视化树片段,而是尝试对纯字符串 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>
我并不特别希望它能奏效。