tags:

views:

137

answers:

2

In my WPF App, how do I get the state of the shift, ctrl and alt keys in my mouse event handler? I seem to remember in MFC you could get that information from the mouse event.

Thanks!

+1  A: 

Assuming that you're still in the mouse event handler, you can check the value of Keyboard.Modifiers. I don't think that there is anyway to get modifier information from the event itself, so you have to interrogate the keyboard directly.

Andy
How annoying... if I understand correctly this means that if the user lets go of the keyboard between the time that the mouse event is fired and when the event handler interrogates the keyboard, it will detect the wrong key states.
emddudley
A: 

As per Andy's answer, you use Keyboard.Modifiers. I figured I would post a little example

Something like this in your event handler should work:

private void MyExampleButton_Click(object sender, RoutedEventArgs e)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0) {
        System.Diagnostics.Debug.WriteLine("Control is pressed");
    } else {
        System.Diagnostics.Debug.WriteLine("Control is NOT pressed");
    }
}

Regards, Mike

mkgrunder