WPF / MVVM菜单项的替代背景色

时间:2015-08-22 19:55:07

标签: c# wpf mvvm

我已经看过并试图自己解决这个问题,但我现在已经坚持了一段时间了,我想知道是否有可能在WPF中交替使用menuitem的背景颜色?我已经在菜单项上尝试了alternatecount并试图根据它改变背景颜色,但没有任何反应。我知道我可以硬编码菜单项的背景颜色,但我的菜单是动态的,并且随着我使用MVVM模式绑定它们而改变。如果有人知道如何做到这一点,任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:5)

你可以用一种风格来改变它。就在您的Menu.Resources

    <Style TargetType="MenuItem">
        <Setter Property="Background" Value="SkyBlue" />
    </Style>

编辑:您可以使用AlternationCount来实现此目的:

<Menu AlternationCount="2">
    <Menu.ItemContainerStyle>
        <Style TargetType="MenuItem">
            <Style.Triggers>
                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                    <Setter Property="Background"  Value="Red"></Setter>
                </Trigger>
                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                    <Setter Property="Background" Value="Blue"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Menu.ItemContainerStyle>

    <MenuItem Header="qwe" />
    <MenuItem Header="qwe" />
    <MenuItem Header="qwe" />
    <MenuItem Header="qwe" />
    <MenuItem Header="qwe" />
</Menu>