wpf - 鼠标单击并拖动事件 WPF

标签 wpf events click drag

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

我尝试使用 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 Window_MouseMove(object sender, MouseEventArgs e) {
     if (e.LeftButton == MouseButtonState.Pressed) {
        this.DragMove();
     }
 }

关于wpf - 鼠标单击并拖动事件 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17441672/

相关文章:

wpf - 应用程序应该有 3 层

c# wpf - 不能同时设置 DisplayMemberPath 和 ItemTemplate

javascript - 跨浏览器意外访问 "event"变量?

jquery - 如何使用 jQuery 检查在单击事件期间是否按下了某个键?

c# - ServiceLocator.Current.GetInstance 可以返回 null 吗?

c# - 如何使用 Fiddler 调试来自任何应用程序(例如 C#/WPF 应用程序)的流量

javascript - 无法删除表单提交时的 `PreventDefault` 事件监听器 (JavaScript)

ios - 在 iOS 中处理事件

javascript - 如何在左侧添加一个 div,并且仅在单击鼠标时显示?

javascript - 如何检查单选按钮是否被点击?