AlexPi
AlexPi

Reputation: 586

How do you detect a mouse double left click in WPF?

In .NET 4.0 WPF, how do you detect a double-click by the left mouse button?

A seemingly trivial task.

I don't see a way of determining which button was pressed in the MouseDoubleClick event using the System.Windows.Input.MouseButtonEventArgs.

Upvotes: 6

Views: 9515

Answers (2)

N_A
N_A

Reputation: 19897

Are you looking for MouseButtonEventArgs.ChangedButton? API here.

private void MouseButtonDownHandler(object sender, MouseButtonEventArgs e)
{
    Control src = e.Source as Control;

    if (src != null)
    {
        switch (e.ChangedButton)
        {
            case MouseButton.Left:
                src.Background = Brushes.Green;
                break;
            case MouseButton.Middle:
                src.Background = Brushes.Red;
                break;
            case MouseButton.Right:
                src.Background = Brushes.Yellow;
                break;
            case MouseButton.XButton1:
                src.Background = Brushes.Brown;
                break;
            case MouseButton.XButton2:
                src.Background = Brushes.Purple;
                break;
            default:
                break;
        }
    }
}

Upvotes: 4

Reed Copsey
Reed Copsey

Reputation: 564811

MouseDoubleClick passes MouseButtonEventArgs as the event arguments. This exposes the ChangedButton property, which tells you which button was double clicked.

void OnMouseDoubleClick(Object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left)
    {
        // Left button was double clicked
    }
}

Upvotes: 18

Related Questions