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