Отключить ключ ускорителя ярлыков WPF (текст подчеркивания отсутствует)

Я устанавливаю значение .Content метки для строки, содержащей .Content подчеркивания; первый символ подчеркивания интерпретируется как ключ ускорителя.

Не меняя основную строку (заменив все _ на __ ), существует ли способ отключить ускоритель для ярлыков?

Если вы используете TextBlock в качестве содержимого ярлыка, его текст не будет воспринимать символы подчеркивания.

Вы можете переопределить свойство RecognizesAccessKey ContentPresenter, которое находится в шаблоне по умолчанию для метки. Например:

         

Используйте <"Text Block">"<"/Text Block"> вместо <"label"><"/label"> для печати точного текста с подчеркиванием.

Почему бы не так?

 public partial class LabelEx : Label { public bool PreventAccessKey { get; set; } = true; public LabelEx() { InitializeComponent(); } public new object Content { get { var content = base.Content; if (content == null || !(content is string)) return content; return PreventAccessKey ? (content as string).Replace("__", "_") : content; } set { if (value == null || !(value is string)) { base.Content = value; return; } base.Content = PreventAccessKey ? (value as string).Replace("_", "__") : value; } } } 
  • Почему большинство пользовательских интерфейсов однопоточных?
  • Создание пользовательской кнопки в Java с помощью JButton
  • Слушатель модели JTable слишком быстро обнаруживает вставленные строки (до их рисования)
  • Безопасно ли создавать виджеты Swing / AWT NOT на тему Dispatch Event?
  • Выберите все содержимое текстового поля, когда он получает фокус (Vanilla JS или jQuery)
  • GUI не работает после перезаписи в MVC
  • Как получить экземпляр fragmentа из FragmentActivity?
  • Как преобразовать обычный Java-проект в intellij в проект JavaFx
  • Масштабировать пользовательский интерфейс для нескольких разрешений / различных устройств
  • Android - способ отображения текстового текста в TextView?
  • Как настроить ListField в BlackBerry?
  • Давайте будем гением компьютера.