2010-07-29 10 views
8

Dovrebbe essere semplice, ma non riesco a capire come farlo. Utilizzando WPF4 Voglio Associare Ctrl +- per diminuire e Ctrl += per ingrandire:WPF KeyGestures - Binding non alfanumerico chiavi

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

Tuttavia, sto ottenendo gli errori: in caso di Ctrl + =:

valore richiesto '=' non è stato trovato.

Qualche idea?

risposta

8

Va bene - si scopre che la chiave = non esiste (è possibile controllare questo attraverso il Key -enumeration - non v'è alcuna voce per Pari o EqualSign) ... Io uso una tastiera internazionale , quindi devi trovare la sequenza di tasti che hai premuto per inserire = (per me è Shift + D0 su una tastiera danese) - e usare quella sequenza di tasti.

Così il vostro XAML dovrebbe essere (in Danimarca):

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

EDIT: Credo in un sistema americano è la chiave OemPlus - ma è possibile controllare da console writeline'ing l'argomento e.Key in un gestore di eventi key-down)

EDIT2: la chiave - è OemMinus sul sistema.

+0

E spero che tu non abbia intenzione di internazionalizzare la tua applicazione ... :-) – Goblin

+1

Grazie! La ricerca dell'evento keydown era la strada da percorrere. Quello che stavo cercando era "Ctrl + OemPlus" e "Ctrl + OemMinus". Mi preoccuperò per l'internazionalizzazione più tardi! – Grokys

+0

+1 per "puoi controllare tramite console-writeline 'l'argomento e.Key in un gestore di eventi key-down" per me era Key = "Aggiungi" –

8

Suggerimento per utenti con un tastiera tedesca (forse alcuni altri paesi):

I tasti del tastierino numerico "+" e "-" sono "Aggiungi" e "Sottrarre"

Il normale i tasti "+" e "-" sono "OemPlus" e "OemMinus"

Così

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

spareranno il comando se si preme "+" sulla ke principale Utilizzo della tastiera.