2009-09-19 5 views
3

Je suis assez confus au sujet de la manipulation de la clé http://msdn.microsoft.com/en-us/library/system.windows.input.key.aspx dans un KeyEventArgs.
Par exemple: Je veux gérer la clé du côlon (fait sur mon clavier italien avec dot + Maj), donc j'écrire un code comme celui-ciQuelle est la manière correcte et indépendante de la culture de gérer KeyFinder WPF?

if (e.Key == Key.OemPeriod && e.KeyboardDevice.Modifiers == ModifierKeys.Shift) { 
    // Code 
} 

Mais cette approche est incorrecte parce que le travail uniquement avec clavier italien . Quelle est la manière correcte et indépendante de la culture de manipuler Key in WPF?

+1

Bonne question, en fait. Il n'y a pas d'équivalent de 'KeyPress' dans WPF, donc je pense que la solution ne sera pas aussi simple. De plus, si vous pouviez fournir un peu plus de contexte à votre question, nous pourrions peut-être suggérer quelque chose plus facilement. – Noldorin

Répondre

3

Avez-vous essayé de gérer les événements PreviewTextInput ou TextInput à la place? Ces événements devraient vous donner le texte entré (qui est indépendant du périphérique) par opposition à la touche physique enfoncée (qui dépend du périphérique).

+0

PreviewTextInput et TextInput fournissent les informations correctes. Quand j'ai fait mon test, l'événement TextInput est piégé ailleurs et n'atteint pas mon contrôle, mais PreviewTextInput fonctionne correctement. Merci –

+0

Ma question n'est pas seulement comment obtenir du caractère à partir d'un TextBox. Est plus généralement une question sur la façon correcte de faire cette conversion d'un événement de clavier à la représentation char. Parce que j'ai trouvé très étrange une sorte de limite dépendante de la culture dans l'infrastructure de gestion du clavier. –

+0

Ces événements sont uniquement l'enveloppe WPF entourant les messages Windows sous-jacents. Vous obtenez la même séquence d'événements dans WinForms, VB, MFC, WinAPI, etc., seuls les noms des événements/messages diffèrent. Windows a toujours travaillé comme ça AFAIK. –

Questions connexes