【问题标题】:WPF/MVVM Alternate background color of menuitemsWPF/MVVM 菜单项的备用背景颜色
【发布时间】:2015-11-16 13:42:31
【问题描述】:

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

谢谢

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    您可以使用样式更改它。就在你的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>
    

    【讨论】:

    • 我知道我可以这样做,但是将每个项目的背景颜色设置为相同,我正在尝试交替它们的颜色,即:menuitem 1 = blue,menuitem 2 = red , menuitem 3 = 蓝色等
    • 抱歉,我的速读失败了。我已经更新了我的答案以替换颜色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    相关资源
    最近更新 更多