Size MenuItem以适合XAML中的内容

时间:2013-07-18 12:32:01

标签: c# wpf xaml menuitem

我希望找到一种方法来移除popup(sub)'MenuItem'中左侧的空间,只让它们占用所需的空间,而无需为控件创建一个全新的模板。在这种情况下我是否可以使用任何类型的依赖属性或某种性质的东西?我已经尝试过创建新的模板,而我正在努力实现这个模板很麻烦,看起来真的有些过分。

如果有人有任何建议(特别是关于如何摆脱'MenuItem'左侧那个讨厌的方框而不制作新模板),请告诉我。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果不重新考虑,就不要认为你能做到。 Here's another question that asked for the icon area to be removed但还要求更多。他们必须重新模板化,答案包括他们使用的模板,这样可以简化您的流程。

这是另一个answer from MSDN forums,我认为只是删除了图标区域。

不理想,但没有“ShowIconArea”属性或任何东西。

答案 1 :(得分:1)

有一个技巧。看看它是否能解决你的目的 在样式中设置ItemsPanel并将其添加到资源中

<Style TargetType="{x:Type MenuItem}">
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <StackPanel Margin="-20,0,0,0" Background="Gray"></StackPanel>
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
</Style>


<Menu>
    <MenuItem Header="MI1">                
        <MenuItem Header="MI1"></MenuItem>
        <MenuItem Header="MI2"></MenuItem>
    </MenuItem>
    <MenuItem Header="MI2"></MenuItem>
</Menu>