WPF Accelerator Keys, такие как Visual Studio - PullRequest
2 голосов
/ 30 марта 2009

Я занимаюсь разработкой большого бизнес-приложения на C # и WPF. Наш стандарт состоит в том, чтобы включать кнопки ускорения для кнопок во всех формах (Сохранить, Отмена, Поиск и т. Д.). Недавно я заметил, что при загрузке формы клавиша ускорения активна, даже когда пользователь не нажимает клавишу «Alt». Например, наша кнопка «Поиск» использует «Alt-H» в качестве ускорителя, но пользователь может начать поиск, просто нажав «H». Я использую стандартную «_» в содержимом кнопки для создания клавиши ускорения.

<Button Content="Searc_h"/>

Кто-нибудь еще заметил такое поведение и нашел ли кто-нибудь подходящий обходной путь, требующий нажатия клавиши «Alt»?

Ответы [ 5 ]

10 голосов
/ 18 марта 2012

Это стандартное поведение клавиш ускорения в Windows, когда ввод текста не фокусируется. Пожалуйста, не ломайте это, просто оставьте это внутри.

Вы можете проверить это сами. Нажмите Win + R, чтобы вызвать диалоговое окно «Выполнить ...», затем нажмите Tab, чтобы одна из кнопок была в фокусе, затем нажмите «B». Кнопка «Обзор» активируется.

Именно поэтому вы можете ответить на эти сообщения MessageBox простым Y / N (вместо Alt + Y / Alt + N).

3 голосов
/ 04 октября 2011

Не вставляйте подчеркивание, затем добавьте это в окно.

  <Window.InputBindings>
    <KeyBinding Command="Help" Key="H" Modifiers="Alt"/>
  </Window.InputBindings>
1 голос
/ 19 июля 2011

Мнемоники меню и панели инструментов работают без нажатия клавиши Alt в WPF. Это стандарт Microsoft. Перейдите по этой ссылке http://social.msdn.microsoft.com/Forums/en/wpf/thread/14f6f49f-0027-471b-b68c-e7f6ba012012

1 голос
/ 05 ноября 2009

В этой статье В блоге Сары Форд обсуждается это явление.

Комментатор упоминает это как решение:

"Если вы пишете приложение, и вам не нравится это поведение, найдите WM_CHANGEUISTATE и, в частности, флаг UISF_HIDEFOCUS."

0 голосов
/ 12 мая 2010

На самом деле, шаблон команд в WPF позволяет более детально контролировать, какие сочетания клавиш разрешены. Это на шаг дальше, чем «_» в тексте вашей кнопки.

Проверьте следующую ссылку для получения дополнительной информации:

http://www.switchonthecode.com/tutorials/wpf-tutorial-command-bindings-and-custom-commands

Изменить: предыдущая ссылка была мертвой - при условии новой ссылки.

-Doug

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...