1

我正在尝试添加一个菜单项,如下所示:

Items.Add(new MenuItem()
{
    Header = var_from_a_loop;
});

var_from_a_loop 有一些下划线。比如说,var_from_a_loop = "A_B_C_D"。运行时,它变为“AB_C_D”,即删除第一个下划线。现在,我知道下划线被视为快捷键指示符(就像上面的意思是使用快捷键 Ctrl + B),但我想禁用它。我可能可以通过这样做来管理显示整个字符串:

Header = "_" + var_from_a_loop

但我正在寻找一个更好的解决方案,因为上面有点“hacky”。

4

1 回答 1

0

如果您愿意使用XAML,您可以使用此模板使其工作:

<ContextMenu x:Key="ContextMenu">
    <MenuItem>
        <MenuItem.Header>
            <TextBlock>_Some text here</TextBlock>
        </MenuItem.Header>
    </MenuItem>
</ContextMenu>  

然后显示包含下划线的项目。如果您使用 aLabel而不是 the TextBlock,它将被评估为快捷键。
仅出于示例的目的,人们会使用 sayContextMenu使用 a Style。假设我们正在向ListView项目添加上下文菜单:

<Style TargetType="{x:Type ListViewItem}">
    <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
</Style>
于 2018-08-02T07:24:36.540 回答