2010-10-13 26 views
0

quand je saute dans le PreviewKeyDown le char droit au Caret dans mon RichTextBox n'est pas déplacé ENCORE. Je voudrais dire à cet événement que vos trucs déplacer l'omble à la droite et puis laissez-moi faire MES choses. Comment puis je faire ça?Je veux le moment où une clé est "Down" dans l'événement PreviewKeyDown dans WPF

private void RTB_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Space) 
    { 
     // event do your stuff 

     // Char righthanded from the Caret position is moved to the right side 

     // do MY stuff 
    } 

} 

MISE À JOUR: que vous savez ce que je parle ... =>

alt text

Le Caret était directement devant la Parole "Harold ..." je pressais la barre d'espace touche plusieurs fois pour déplacer le "Harold ..." vers la droite. Mais le formatage d'un soulignement noir semble être bloqué ... comment puis-je faire que le soulignement reste attaché à l'objet Run contenant le nom "Harold ..."?

La raison pour laquelle j'ai voulu attraper la clé de la barre d'espace dans l'événement KeyDown est d'obtenir le nouvel objet Run implicitement créé et de supprimer le soulignement noir.

Répondre

1

Les événements "Aperçu" sont déclenchés avant que l'événement se produise. Un événement KeyDown équivalent sera déclenché après le traitement de l'événement. Connectez-vous à cet événement à la place et votre code s'exécutera après que WPF ait terminé la manipulation de la touche.

+0

Il est plus difficile ... Le problème est quand je souscris à l'événement KeyDown la touche barre d'espace n'est pas reconnu, mais Je veux faire des trucs spéciaux uniquement pour la barre d'espace ... – Elisabeth

+0

J'ai mis à jour ma question avec un échantillon concret! – Elisabeth

0

C'est la raison pour laquelle elle est appelée PreviewKeyDown ... l'événement que vous voulez est probablement KeyDown ou TextChanged