如何确定刚刚发布了哪个鼠标按钮(例如LeftButton)?

时间:2014-03-12 08:00:18

标签: c# wpf event-handling mouseevent

我可以轻松检查哪个按钮当前处于Pressed状态或Released状态。例如,要检查当前是否已发布LeftButton,我可以使用:

void mouse_event_handler(object sender, MouseButtonEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Released)
    {
        // left button is released
    }
}

我的问题是:如何确定哪个鼠标按钮(例如LeftButton)刚刚将其状态从“按下”更改为“已发布”?上述方法无法确定无论先前发布了哪个按钮MiddleButtonRightButton,它都是真的(即它只检查当前状态)。我不确定C#/WPF原生支持这一点。我想要这样的东西:

if (e.LeftButton == MouseButtonState.Just_Released)

P.S。:我知道一种方法可以在鼠标按钮关闭时使用额外的标记,然后检查此标记。

1 个答案:

答案 0 :(得分:4)

您可以使用MouseButtonEventArgs类的ChangedButton属性

if (e.ChangedButton == MouseButton.Left)
{
    // Only occurs when the Left button is released
}

if (e.LeftButton == MouseButtonState.Released)
{
    // Occurs everytime a button is released (doesnt matter which one) AND the left mouse button is in released mode
}

更多信息:http://msdn.microsoft.com/en-us/library/system.windows.input.mousebuttoneventargs.changedbutton(v=vs.110).aspx