我有一些显示对象列表的 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。试试这个,你就会明白。