Как мы можем предотвратить использование подчеркивания в качестве контрольного ключевого индикатора?
Я пытаюсь добавить пункт меню, как это:
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
Но я ищу лучшее решение, так как вышесказанное является своего рода "хакерским".
1 ответ
Если бы вы использовали XAML
Вы можете заставить это работать, используя этот шаблон:
<ContextMenu x:Key="ContextMenu">
<MenuItem>
<MenuItem.Header>
<TextBlock>_Some text here</TextBlock>
</MenuItem.Header>
</MenuItem>
</ContextMenu>
Затем отображается элемент с включенным подчеркиванием. Если вы используете Label
вместо TextBlock
это будет оцениваться как сочетание клавиш.
Просто для примера можно было бы использовать сказанное ContextMenu
используя Style
, Скажем, мы добавляем контекстное меню к ListView
Предметы:
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
</Style>