2016-08-29 1 views
5

В настоящее время я делаю калькулятор для своего .NET-класса. Калькулятор отлично работает, когда я использую кнопки. Но когда я использую клавиши на клавиатуре, это не работает так хорошо. Например, когда я нажимаю клавишу Enter, я хочу, чтобы калькулятор вычислил проблему в текстовом поле. Вместо этого нажмите кнопку, которую я нажал в последний раз, что приводит к проблемам. Как я могу предотвратить это?Введите ключевой вопрос

Я знаю, что это странное объяснение, но я не знаю, как это объяснить.

+0

Вы можете убедиться, что ваша кнопка равно всегда имеет фокус. – ProgrammingDude

+4

Рассмотрите возможность использования ['KeyBinding'] (https://msdn.microsoft.com/en-us/library/system.windows.input.keybinding (v = vs.110) .aspx) – Xiaoy312

+0

Переключение по ключу, как указано выше, или контроль KeyUp и действовать на основе нажатой клавиши. –

ответ

1

На уровне корня вашего окна/пользовательского элемента управления добавьте InputBinding для возврата нажатой клавиши. Это перехватит нажатие клавиши и выполнит вашу команду, как если бы вы нажали кнопку (при условии, что свойство Command также связано с этой командой).

Пример с UserControl:

<UserControl.InputBindings> 
    <KeyBinding Key="Return" Command="{Binding EvaluateCommand}"/> 
</UserControl.InputBindings>