我正在尝试向WPF添加项目 - ContextMenu
仅用于"描述"下面的项目,但我不知道如何在所有项目上添加一个简单的文本行,其中文本居中对齐,文本不像普通MenuItem
那样可选。
我试过这样的事情:
<ContextMenu Grid.Row="0" StaysOpen="False">
<TextBlock Text="Add New:" IsEnabled="False" HorizontalAlignment="Center"/>
<MenuItem Header="one"/>
<MenuItem Header="two (horizontal)"/>
<MenuItem Header="two (vertical)"/>
<MenuItem Header="three"/>
<MenuItem Header="four"/>
<MenuItem Header="six"/>
</ContextMenu>
但不幸的是,TextBlock既没有集中对齐,也没有不可选择。
问题是使用MenuItem
并将IsEnabled
- 属性设置为false,文本不再是正常的黑色,而且我也无法集中对齐它。
希望有人能在这里想到一个简单的解决方案,我根本找不到任何东西。
答案 0 :(得分:2)
我建议您为menuitems创建SubMenu项目。通过这种方式,menuitems将对其下的所有子菜单进行分组。
我已经给出了使用menuitem和submenuitems纯粹使用mvvm创建上下文菜单的答案。在这里你可以参考它。
WPF Context Menu with dropdown list showing hyperlinks
对于你提到的案例。我试过这个:
<ContextMenu StaysOpen="False">
<MenuItem Header="Add New:" IsEnabled="False" HorizontalAlignment="Center">
<MenuItem.Style>
<Style TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
<MenuItem Header="one"/>
<MenuItem Header="two (horizontal)"/>
<MenuItem Header="two (vertical)"/>
<MenuItem Header="three"/>
<MenuItem Header="four"/>
<MenuItem Header="six"/>
</ContextMenu>
我得到了菜单
添加新:不可选,鼠标悬停也不突出显示。
希望它有所帮助。感谢