如何通过编辑模板移除WPF MenuItem控件的第一、第三列
- 第一步:定位模板中的子菜单布局Grid
在你导出的MenuItem ControlTemplate中,找到Role为SubmenuItem/SubmenuHeader对应的弹出层布局控件,默认是一个带多列定义的Grid。 - 第二步:修改Grid列定义
删除原有列定义中用于放图标的第一列、放快捷键的第三列,仅保留承载Header内容的中间列,修改后的列定义参考:
<Grid.ColumnDefinitions> <!-- 仅保留Header列 --> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions>
- 第三步:删除冗余元素
找到原Grid中对应第一列的Icon内容展示控件(一般是名为Icon的ContentPresenter)、对应第三列的快捷键展示控件(一般是名为InputGestureText的TextBlock),直接删除这两个控件即可。 - 第四步:调整Header元素的列属性
将原放在第二列的Header内容展示控件的Grid.Column属性从1改为0,删除原有的Grid.ColumnSpan属性(如果有)。 - 可选:调整样式作用范围
如果需要该样式全局生效,删除Style的x:Key属性即可;如果只需要作用于特定Menu,保留x:Key并将该Style绑定到目标Menu的ItemContainerStyle属性上。
内容的提问来源于stack exchange,提问作者nam
相关产品推荐
相关产品推荐

