WPF KeyGestures - Связывание не буквенно-цифровых ключей - PullRequest
8 голосов
/ 29 июля 2010

Должно быть простым, но я не могу понять, как это сделать.Используя WPF4, я хочу привязать Ctrl + - для уменьшения и Ctrl + = для увеличения:

    <KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+="/>
    <KeyBinding Command="{Binding Content.ZoomOutCommand}" Gesture="Ctrl+-"/>

Однако я получаю ошибки: в случае Ctrl + = :

Запрошенное значение '=' не найдено.

Есть идеи?

Ответы [ 2 ]

8 голосов
/ 20 сентября 2011

Подсказка для пользователей с немецкой клавиатурой (может быть, и в некоторых других странах):

Цифровые клавиши "+" и "-" означают "Добавить" и "Вычесть"

Обычными клавишами «+» и «-» являются «OemPlus» и «OemMinus»

Так что

<KeyBinding Gesture = "OemPlus" Command="myCommand" />

запустит команду, если вы нажмете «+» наосновная клавиатура.

8 голосов
/ 30 июля 2010

Хорошо - оказывается, что ключ = не существует (вы можете проверить это с помощью Key-перечисления - нет записи для Равно или EqualSign ) ... Я использую международную клавиатуру, поэтому вам нужно найти последовательность клавиш, которую вы нажимаете, чтобы ввести = (для меня это Shift + D0 на датской клавиатуре) - и используйте эту последовательность клавиш.

Итак, ваш XAML должен быть (в Дании):

<KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+Shift+D0"/>

РЕДАКТИРОВАТЬ: я считаю, что в американской системе это ключ OemPlus - но вы можете проверить его, записав в консоли аргумент e.Key в обработчике события нажатия клавиши)

EDIT2: клавиша - в моей системе OemMinus.

...