c# - 调整 MenuItem 的大小以适应 XAML 中的内容

标签 c# wpf xaml menuitem

我希望找到一种方法来删除弹出窗口(子)'MenuItem' 左侧的空间,只让它们占用所需的空间,而不必为控件制作一个全新的模板。在这种情况下,我可以使用任何类型的依赖属性或类似性质的东西吗?我已经尝试创建新模板,但对于我想要完成的事情来说,这很麻烦,而且看起来真的有点过头了。

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

最佳答案

有一个技巧。看看它是否解决了你的目的 在样式中设置 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>

关于c# - 调整 MenuItem 的大小以适应 XAML 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17723521/

相关文章:

c# - 检查一组对象中的任何一个属性是否与一组字符串中的任何一个相匹配的 lambda 表达式是什么?

c# - 以编程方式更改 Windows 电源设置

c# - 如何在数据库中存储两个相同的实体? Entity Framework ,C#

c# - 如何使用 ItemsSource 在 DataGridCell 模板中绑定(bind) TextBlock.Text

c# - XAML 键绑定(bind) 1,2,3

wpf - C+Ctrl KeyBinding 不会导致复制发生

WPF:有没有办法在 MultiValueConverter 的 ConvertBack 方法中获取原始值?

c# - 如何为数百个并发连接优化/设计 WCF?

c# - 如何多目标 SilverLight 4 和 WPF 应用程序?

c# - PrintTicket 提供程序无法绑定(bind)到打印机。 Win32错误: The printer name is invalid