2009-02-24 14 views
19

Un amico non riusciva a capire come assegnare "Ctrl + +" come tasto di scelta rapida a ToolStripMenuItem. Ho fatto notare che la chiave Keys.OemPlus funzionava e che la stringa di visualizzazione per il collegamento doveva essere impostata, ma l'enumerazione Keys mi confonde.Quali sono le chiavi "OEM" nell'enumerazione System.Windows.Forms.Keys?

Qual è l'accordo con questi tasti "OEM"? Ho fatto un po 'di ricerche e sembra che sia perché i tasti sono supportati solo in Win2k o successivi, ma ciò sembra ridicolo dato che sono sicuro che le persone hanno usato decenni decisi prima di Win2k. Perché non c'è "OemEquals"? Ci sono altre chiavi che sono completamente assenti dall'enumerazione Keys?

Sono principalmente in cerca di una risposta al perché esistono questi valori con nome speciale, ma mi piacerebbe sentire la discussione sulle altre domande. È sicuro assumere che dal momento che il segno più è sopra il segno di uguale sulla mia tastiera che usando Keys.OemPlus e controllando il tasto modificatore Maiusc è un OK per dire se Ctrl + = è stato cliccato? Ci sono altre chiavi che sono state omesse?

Nota che questa è non una domanda WPF, anche se le System.Windows.Forms.Keys e System.Windows.Input.Key enumerazioni sembrano identici (anche se Key è denominato in modo non corretto secondo le Linee Guida Framework di progettazione;))

risposta

25

Sono stati introdotti con l'API di Windows, non sono specifici per WPF.

Innanzitutto, questi sono codici KEY, non codici carattere: identificano un tasto sulla tastiera, non un carattere - ad es. il carattere "A" viene in genere generato premendo il tasto A mentre si tiene premuto un tasto MAIUSC o BLOC MAIUSC attivo.

Le chiavi OEM sono le chiavi che variano da con le tastiere locali. Dove la tastiera degli Stati Uniti ha parentesi e bretelle, le tastiere tedesche hanno dieresi.

Si chiamano "OEM" perché il produttore di apparecchiature originali (della tastiera) era responsabile della definizione della loro funzionalità.

+2

Credo che i vari tasti multimediali siano anche chiavi OEM. –

+0

Quindi per esempio per 'Oem3' che è il segno di spunta posteriore' '' il tasto è che dice che non è comune su tastiere non americane quindi non può essere 'Key.BackTick' ma finché sono acceso un layout americano dovrebbe sempre rappresentare la chiave di back-tick? –

1

OEM significa "Original Equipment Manufacturer" (o qualcosa di relativamente vicino a quello). Penso che sia un tentativo da parte di WPF di essere in qualche modo neutrale rispetto alla piattaforma. Questa è solo un'opinione però.