为MenuItem使用DataTemplate会导致左侧出现额外的空间?

每当我将DataTemplate附加到MenuItem时,每个生成的菜单项都会在左侧获得额外的空间。 这个额外的空间看起来像为我使用的支票预留的空间一样宽。 在没有DataTemplate的情况下手动构建菜单不会添加此额外空间。 作为额外的皱纹,如果我点击这个额外的空间,菜单项就会消失,但不会生成任何点击事件。 我不知道为什么它会增加这个额外的空间。 有任何想法吗?

我的xaml代码变得更简单了:

带有描述的额外空间的菜单:

          

没有额外空间的菜单:

        

这是因为DataTemplate生成的可视树将被包装在一个容器中 – 在本例中是一个MenuItem 。 因此,您实际上在MenuItem中有一个MenuItem ,它解释了额外的空间和缺乏交互性。 您无需在ItemTemplate包含MenuItem

您的示例可能会写为:

          

或者,也许更简洁: