【问题标题】:Setting style of ContextMenu on subitems在子项上设置 ContextMenu 的样式
【发布时间】:2011-01-27 00:31:23
【问题描述】:

我已经为 MenuItem 和 ContextMenu 创建了一个自定义样式和模板,对于我的第一个级别,效果很好,但是每当我添加一个 SubMenu 项时,该 ContextMenu 的样式都会恢复为默认样式。如何确保该项目使用我的自定义样式?我也尝试过使用

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

    问题在于样式被应用于 ContextMenu 的子菜单项。由于它们本身就是 ItemsControl,因此孙辈正在从 MenuItem 样式中选择 ItemContainerStyle。我建议将 MenuItem 样式拉到一个单独的资源中,然后像这样使用它:

    <Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}">
       ...
    </Style>
    
    <Style TargetType="{x:Type ContextMenu}">
        <Setter Property="ItemContainerStyle">
            <Setter.Value>
                <Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource menuItemStyle}">
                    <Setter Property="ItemContainerStyle" Value="{StaticResource menuItemStyle}" />
                </Style>
            </Setter.Value>
        </Setter>
    </Style>
    

    【讨论】:

    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多