2010-02-22 12 views
1

J'essaie de faire en sorte que l'utilisateur puisse faire défiler une riche zone de texte en cliquant sur la fenêtre dans laquelle est active la zone de texte et en faisant glisser la souris. Malheureusement, je ne l'ai pas obtenu très loin:Y a-t-il un moyen propre que je peux capturer quand un utilisateur clique puis tire la souris?

private void Main_PreviewMouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.LeftButton == MouseButtonState.Pressed) 
    { 

    } 
} 

J'ai vu quelques suggestions sur le Web pour suivre les dernières coordonnées x, y de la souris et de les comparer à la coordonnées x, y à chaque fois que la souris L'événement move est déclenché. Y a-t-il une manière moins désordonnée de faire ceci?

Répondre

2

Aucun de ceux que je connais. Sauf si vous utilisez une API qui le gère pour vous, vous devez suivre les informations manuellement. Et même si vous utilisiez une API juste pour les dragages de la souris, elle ferait elle-même le stockage et repasserait probablement les X et Y actuels, et la différence en X et Y, puisque l'API ne saurait pas ce que vous voulez faire avec l'information.

Vous manipuleriez un peu moins d'informations, mais en sauvegardant seulement environ 5 lignes de code pour obtenir le même résultat.