WPF/MVVM菜单项的备用背景色

cra*_*vie 1 c# wpf mvvm

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

谢谢

Xia*_*312 5

你可以用一种风格来改变它.就在你的下面Menu.Resources:

    <Style TargetType="MenuItem">
        <Setter Property="Background" Value="SkyBlue" />
    </Style>
Run Code Online (Sandbox Code Playgroud)

编辑:你可以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>
Run Code Online (Sandbox Code Playgroud)