2015-02-12 3 views
0

Я хочу настроить горячие клавиши в приложении Wpf. Использование комбинаций клавиш работает в простом случае, например: Ctrl + B, Ctrl + и т.д.Умножает ключи в KeyBinding?

<KeyBinding Gesture="Ctrl+B" Command="{Binding Source={StaticResource localCusomCommands}, Path=AddTTRowCommand}" ></KeyBinding> 

<KeyBinding Modifiers="Control" Key="B" Command="{Binding Source={StaticResource localCusomCommands}, Path=AddTTRowCommand}" ></KeyBinding> 

Но если мне нужно горячие клавиши с несколькими ключами Ctrl + P + B, Ctrl + A + B, и т.д.

<KeyBinding Modifiers="Control" Key="P,B" Command="{Binding Source={StaticResource localCusomCommands}, Path=AddTTRowCommand}" ></KeyBinding> 

Не работает.

<KeyBinding Gesture="Ctrl+B+A" Command="{Binding Source={StaticResource localCusomCommands}, Path=AddTTRowCommand}" ></KeyBinding> 

Не компилировать. Error 15 Unrecognized ModifierKeys 'B'.

Как достичь этого?

+1

Вы не можете связываться с несколькими комбинациями клавиш, как это, только с несколькими модификаторами и (одним) ключом. Вам нужно будет погрузиться на гораздо более низкий уровень и напрямую обращаться с клавиатурой/входными сигналами (или найти библиотеку, которая это делает). –

ответ

0

Как я уже сказал, существует реализация для переопределения KeyBinding и жестов для нескольких ключей. обратитесь к приведенной ниже ссылке. Он преодолел внедрение InputGesture для достижения этой многопользовательской привязки. http://kent-boogaart.com/blog/multikeygesture

+0

Не работайте, если вы наберете «Ctrl + A», он запустит команду. –

+0

Модифицированный мой ответ, попробуйте. –

+0

Я пробовал это раньше. Если я наберу «Ctrl + C + B», он будет запущен; если я наберу «Ctrl + D + B», он будет запущен снова, если я наберу «Ctrl + B», он будет запущен. –