我有一个 WPF 菜单,我将前景颜色设置为绑定(bind)(使用转换器),比如说我的顶级菜单的前景变为绿色,例如,它下面的所有子菜单变为绿色(我没有想要)。
代码示例: 我希望 Finishing Position 顶部菜单变为绿色或转换器告诉它做什么。 但是,我不希望子 MenuItemDeleteSelection 变为相同的颜色,我希望它只是黑色,或者当它的命令绑定(bind)为 Can Execute= false 时默认为灰色。
<Menu>
<MenuItem Header="{Binding FinishingPosition,Converter={StaticResource FinishingPositionToDisplayTextConverter1}}" Height="17" Width="12" Padding="0" Name="SelectionStatusHeader" Foreground="{Binding FinishingPosition,Converter={StaticResource FinishingPositionToColourConverter1}}" Background="White" HorizontalContentAlignment="Center">
<MenuItem Name="MenuItemDeleteSelection" Header="Delete Selection"
Command="{Binding Path=DataContext.DeleteSelectionCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding}" />
最佳答案
只需在您的菜单资源中设置 MenuItem 的默认样式
,这样它就会自动应用于您的所有菜单项。
将默认值设置为 SystemColors.MenuTextBrushKey,它将应用于除覆盖它的菜单项之外的所有菜单项。
<Menu>
<Menu.Resources>
<Style TargetType="MenuItem">
<Setter Property="Foreground"
Value="{StaticResource {x:Static SystemColors.MenuTextBrushKey}}"/>
</Style>
</Menu.Resources>
<MenuItem Foreground="Green"/>
<MenuItem/>
<MenuItem/>
</Menu>
关于c# - WPF MenuItem Foreground 设置为子菜单 - 只希望它出现在主菜单上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889008/