C# 调整菜单项的大小以适应XAML中的内容

C# 调整菜单项的大小以适应XAML中的内容,c#,wpf,xaml,menuitem,C#,Wpf,Xaml,Menuitem,我希望找到一种方法来删除弹出菜单(sub)“MenuItem”中左侧的空间,只让它们占用所需的空间,而不必为控件创建一个全新的模板。在这种情况下,是否有任何类型的依赖性属性或类似性质的东西可以使用?我尝试过创建新的模板,但对于我试图完成的工作来说,这是一件麻烦的事情,而且看起来真的有些过头了 如果有人有任何建议(特别是关于如何在不制作新模板的情况下摆脱“菜单项”左侧讨厌的框),请告诉我。任何帮助都将不胜感激。不要认为你不重新部署就可以做到这一点。但也要求更多。他们必须重新设置模板,答案包括他们使

我希望找到一种方法来删除弹出菜单(sub)“MenuItem”中左侧的空间,只让它们占用所需的空间,而不必为控件创建一个全新的模板。在这种情况下,是否有任何类型的依赖性属性或类似性质的东西可以使用?我尝试过创建新的模板,但对于我试图完成的工作来说,这是一件麻烦的事情,而且看起来真的有些过头了


如果有人有任何建议(特别是关于如何在不制作新模板的情况下摆脱“菜单项”左侧讨厌的框),请告诉我。任何帮助都将不胜感激。

不要认为你不重新部署就可以做到这一点。但也要求更多。他们必须重新设置模板,答案包括他们使用的模板,这样可能会简化您的流程

这是另一个我认为只是删除图标区域


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

有一个窍门。看看它是否能解决你的问题 在样式中设置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>


谢谢您的回复。很遗憾,没有更有效的方法来处理这件事。我发现自己处境艰难。两个建议的答案确实都能完成任务,但我只能接受一个。。。这对我来说很难,因为Tim的答案仍然需要使用修改过的模板,但从长远来看,这将允许更大的灵活性,而Nitesh的答案实际上完全按照问题的要求解决了问题,但不那么优雅和灵活。这对我来说真的很难,但是,由于尼特什的回答完全符合问题的标准(不涉及自定义模板),我将接受他的回答。蒂姆,你的回答也很有帮助,我很乐意投赞成票。遗憾的是我不能同时接受这两个。不过,我要感谢你们两位的帮助。没什么大不了的。只是希望你能从这两个答案中得到一些有用的东西。很高兴这对你有所帮助。是的,蒂姆的回答更灵活,这就是为什么我说有一个技巧解决方案