2010-07-29 2 views
8

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

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

Тем не менее, я получаю сообщение об ошибке: в случае Ctrl + =:

желаемое значение '=' не был найден.

Любые идеи?

ответ

8

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

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

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

EDIT: Я считаю, что на американской системе это OemPlus ключ - но вы можете проверить его с помощью пульта-writeline'ing в e.Key аргумент в обработчик события с ключом)

EDIT2: - ключ OemMinus в моей системе.

+0

И я надеюсь, что вы не собираетесь интернационализировать свое приложение ... :-) – Goblin

+1

Спасибо! Глядя на событие keydown, это был путь. Я искал «Ctrl + OemPlus» и «Ctrl + OemMinus». Я буду беспокоиться о интернационализации позже! – Grokys

+0

+1 для «вы можете проверить это с помощью console-writeline'ing аргумента e.Key в обработчике событий key-down» для меня это было Key = «Добавить», –

8

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

Кнопки цифровой клавиатуры «+» и «-» в «Добавить» и «Вычитание»

Нормальный клавиши «+» и «-» в «OemPlus» и «OemMinus»

Так

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

запустит команду, если нажать кнопку «+» на главной ке yboard.

Смежные вопросы