Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
鼠标单击并拖动事件WPF_Wpf_Events_Click_Drag - Fatal编程技术网

鼠标单击并拖动事件WPF

鼠标单击并拖动事件WPF,wpf,events,click,drag,Wpf,Events,Click,Drag,我正在开发一个模拟时钟选择器控制。 用户可以单击分针或时针并拖动以转动指针以选择特定时间。我想知道如何检测这样的点击拖动事件 我试着使用MouseLeftButtonDown+MouseMove,但我无法让它工作,因为MouseMove总是在MouseMove发生时触发,尽管我使用了一个标志。有没有更简单的方法 public bool dragAction = false; private void minuteHand_MouseLeftButtonDown(object sender, M

我正在开发一个模拟时钟选择器控制。 用户可以单击分针或时针并拖动以转动指针以选择特定时间。我想知道如何检测这样的点击拖动事件

我试着使用MouseLeftButtonDown+MouseMove,但我无法让它工作,因为MouseMove总是在MouseMove发生时触发,尽管我使用了一个标志。有没有更简单的方法

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;
 }

您可以使事情变得更简单,无需向下/向上操作鼠标:

private void minuteHand_MouseMove(object sender, MouseEventArgs e)
{
    if (Mouse.LeftButton == MouseButtonState.Pressed)
    {
        //my code: moving the needle
    }
 }    

诀窍是否

我认为这是最简单、最直接的方法:

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

我希望用户单击并拖动,而不仅仅是移动鼠标。在wpf拖放中,使用always PreviewMouseDown。这样,您就可以使用MouseMove实现它。(MousDown冒泡,不适合拖放)这不是和原来的帖子一样吗?原来缺少了:this.DragMove()函数
 private void Window_MouseMove(object sender, MouseEventArgs e) {
     if (e.LeftButton == MouseButtonState.Pressed) {
        this.DragMove();
     }
 }