Événement MouseMove dans WPF

Dans WPF lorsque l'événement est déclenché, je veux vérifier si la touche gauche de la souris est pressé, si elle est pressée, je veux faire un calcul.

J'ai essayé ceci:

private void Window_MouseMove(object sender, MouseEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed)
    {
        Calculate();
    }

 }

Mais quand je clic gauche et maintenez enfoncé et déplacez la souris dans l'écran de la Calculer() qu'est appelée une seule fois (j'.e lorsque la souris commence à se déplacer), après que, peu importe où je bouge la souris, la méthode n'est pas appelée.

Je veux le Calculer() méthode pour obtenir appelé à plusieurs reprises alors que la souris est en mouvement, et pendant que la touche gauche de la souris est enfoncé.

  • Êtes-vous sûr que ce n'est pas quelque chose d'autre? Un test simple pour moi montre MouseMove toujours être appelé, même si le bouton gauche de la souris est enfoncé.
  • hmm ... étrange - mais tu ne peux pas définir un indicateur (et MouseCapture?) sur LButtonDown et relâchez-le drapeau (et capture) sur LButtonUp? Semble un peu plus propre pour moi et devrait fonctionner.
  • ouais mais peut-être que l'e.LeftButton état est défini uniquement à droite après le bouton a été pressé - ce qui semble être le problème ici.
  • C'est vrai de l'événement MouseMove est appelé bien. Mais l'Calculer la méthode n'est appelée qu'une seule fois, je veux qu'il soit appelé à plusieurs reprises pendant que la souris se déplace.
InformationsquelleAutor kr13 | 2011-09-16