Cliquez sur la souris et faites glisser L'événement WPF

je développe un contrôle analogique de pointeur. L'utilisateur est en mesure de cliquer sur la main minute ou heure et de faire glisser pour tourner l'aiguille pour sélectionner l'heure spécifique. Je me demandais comment détecter un tel événement de clic et de glisser.

j'ai essayé D'utiliser MouseLeftButtonDown + MouseMove mais je ne peux pas le faire fonctionner car MouseMove est toujours déclenché lorsque la mousemove se produit malgré moi en utilisant un drapeau. Est-il un moyen plus facile?

public bool dragAction = false;

private void minuteHand_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    dragAction = true;
    minuteHand_MouseMove(this.minuteHand, e);
}

private void minuteHand_MouseMove(object sender, MouseEventArgs e)
{
    if (dragAction == true)
    {
       //my code: moving the needle
    }
 }

 private void minuteHand_MouseLeftButtonUp(object sender, MouseEventArgs e)
 {
    dragAction = false;
 }
10
demandé sur Ji yong 2013-07-03 11:02:55

3 réponses

Vous pouvez rendre les choses plus facile et n'a pas besoin de manipuler la souris vers le bas / haut :

private void minuteHand_MouseMove(object sender, MouseEventArgs e)
{
    if (Mouse.LeftButton == MouseButtonState.Pressed)
    {
        //my code: moving the needle
    }
 }    
4
répondu deafjeff 2013-07-03 08:15:47

je pense que c'est la méthode la plus simple et la plus simple :

 private void Window_MouseMove(object sender, MouseEventArgs e) {
     if (e.LeftButton == MouseButtonState.Pressed) {
        this.DragMove();
     }
 }
4
répondu George TG 2015-06-10 04:36:02
public bool dragAction = false;

private void minuteHand_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    dragAction = true;
    minuteHand_MouseMove(this.minuteHand, e);
}

private void minuteHand_MouseMove(object sender, MouseEventArgs e)
{
    if (dragAction == true)
    {
       this.DragMove();
    }
 }

 private void minuteHand_MouseLeftButtonUp(object sender, MouseEventArgs e)
 {
    dragAction = false;
 }

le truc

3
répondu Nick Prozee 2013-12-05 13:58:39