自定义文本MenuItem.Header中的AccessKey / Hotkey可能吗?

时间:2008-11-26 12:04:23

标签: wpf xaml header menuitem

是否可以像任何其他标准菜单项一样访问以下格式化菜单项(使用下划线方法,例如按“f”可以访问“_File”)?我想在这里使用“O”作为“访问密钥”。

不幸的是,<AccessText>似乎没有直接使用(我想象的是

<AccessText Visibility="Collapsed">_O2-Genion</AccessText>

<StackPanel>中,但唉,这没有用。)

<MenuItem>
  <MenuItem.Header>
    <TextBlock>
      O
      <Span BaselineAlignment="Subscript">
        <TextBlock Margin="-3,0,0,0" FontSize="8">
        2
        </TextBlock>
      </Span>
      -Genion
    </TextBlock>
  </MenuItem.Header>
</MenuItem>

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

由于我需要下标,我无法避免自定义格式。我发现这是一个丑陋但明显可能的解决方案如下:

<MenuItem>
  <MenuItem.Header>
    <StackPanel Orientation="Horizontal">
      <AccessText>_O</AccessText>
      <TextBlock>
        <Span BaselineAlignment="Subscript" FontSize="8">2</Span>-Genion
      </TextBlock>
    </StackPanel>
  </MenuItem.Header>
</MenuItem>

答案 1 :(得分:0)

你甚至需要使用AccessKey吗?假设您不需要/想要MenuItem标题文本的自定义样式,您可以通过执行以下操作获得相同的效果:

<MenuItem HeaderText="_02" />

只是在0工作之前加下一个下划线?虽然我似乎记得TextBlock和Label之间的一个区别是TextBlock不支持访问键,但Label确实如此。如果是这种情况,可以在菜单项中使用Label而不是TextBlock吗?