菜单项标题以_开头



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

最新更新