我有一些显示对象列表的contextMenu。我的问题是,当其中一个对象以下划线("_")开头时,例如:_obj1,结果是显示的mentitem没有下划线:obj1"。
知道吗?
我通过更改头模板来修复它。
<Style TargetType="{x:Type MenuItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Header, RelativeSource= {RelativeSource Mode=FindAncestor, AncestorType={x:Type MenuItem}}}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
当使用下划线开始名称时,我认为您可能会错过wpf提供的一个功能。
当您使用_obj1时,菜单时间显示为obj1,但您应该尝试按ALT,然后您将看到obj1"下划线",并且您可以使用ALT+o(obj名称的第一个字符)在不使用鼠标的情况下"按下"菜单项。
例如,当你写这篇文章时:
<MenuItem Header="_File">
<MenuItem .../>
</MenuItem>
然后你只会看到带有"文件"的菜单,但你可以在点击这个菜单项时使用ALT+F。试试这个,你就会明白的。