Pourquoi ne PreviewTextInput gère pas les espaces?

Je suis de la manipulation de la PreviewTextInput événement sur ma fenêtre pour gérer le passage des doigts à partir d'un lecteur de carte magnétique. J'ai la poignée de l'événement sur la fenêtre, de sorte qu'il n'a pas d'importance qui contrôle individuel est porté.

Une fois que le gestionnaire détermine un balayage a commencé (un '%' ou ';' est une entrée), il gère tous les événements jusqu'à ce que le balayage est terminé. Ce système fonctionne généralement assez bien, avec quelques exceptions importantes:

Lorsqu'un caractère espace (et, éventuellement, d'un caractère \n) a l'entrée du lecteur, ils ne sont pas gérées par PreviewTextInput, mais les messages sont envoyés directement dans n'importe quel contrôle est concentré. Curieusement, le gestionnaire n'recevoir \r caractères. Cela provoque un comportement indésirable.

Ce que je veux, c'est un moyen de capturer la tous événements clés au niveau de la fenêtre, et la possibilité de gérer eux si je veux. J'ai essayé PreviewKeyDown et l'a trouvé un peu lourd à utiliser, et pour obtenir char valeurs de. PreviewTextInput est beaucoup plus agréable parce que je peux simplement lire le Texte de la propriété.

Est-il une raison PreviewTextInput ne gère pas certains caractères? Est-il comparable méthode pour obtenir tous les événements, y compris les espaces?

InformationsquelleAutor captncraig | 2011-11-01