2016-08-29 28 views
5

Obecnie tworzę aplikację kalkulatora dla mojej klasy .NET. Kalkulator działa doskonale, gdy używam przycisków. Ale kiedy używam klawiszy na klawiaturze, to nie działa tak dobrze. Na przykład, po naciśnięciu klawisza Enter chcę, aby kalkulator obliczał problem w polu tekstowym. Zamiast tego, enter naciska przycisk, który ostatnio kliknąłem, co prowadzi do problemów. Jak mogę temu zapobiec?Enter Key Issue

Wiem, że to dziwne wyjaśnienie, ale nie wiem, jak to wyjaśnić lepiej.

+0

mógł mieć pewność, że zawsze równa przycisk ma fokus. – ProgrammingDude

+4

Rozważ użycie ['KeyBinding'] (https://msdn.microsoft.com/en-us/library/system.windows.input.keybinding (v = vs.110) .aspx) – Xiaoy312

+0

Keybinding jak wyżej lub monitor KeyUp i działać w oparciu o naciśnięty klawisz. –

Odpowiedz

1

Na poziomie głównym okna/użytkownika dodaj do klawisza powrotu wartość InputBinding. Spowoduje to przechwycenie naciśnięcia klawisza i wykonanie polecenia tak, jak gdybyś kliknął przycisk (zakładając, że jego właściwość jest również powiązana z tą komendą, jest to własność Command).

Przykład z UserControl:

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