SetTrend / mousegestureissue

Sample respository for Microsoft to be able to reproduce issue with InputGesture/MouseGesture
0 stars 0 forks source link

# MCVE: MouseGesture not getting called correctly when being added to InputGestureCollection

This repository serves as an minimal, complete, verifyable example for the following WPF issue, reported on GitHub:

/dotnet/wpf/issues/5141

Main Window Screenshot

Main window screenshot


Problem description:

Having created a custom command like this:

public static RoutedUICommand ZoomIn { get; } = new RoutedUICommand("Zoom in", "ZoomIn", typeof(CustomCommands), new InputGestureCollection() { new KeyGesture(Key.OemPlus, ModifierKeys.Control), new MouseWheelGesture(WheelDirection.Down, ModifierKeys.Control) });

And having written a MouseWheelGesture like described here: https://stackoverflow.com/questions/2271342/mousebinding-the-mousewheel-to-zoom-in-wpf-and-mvvm#answer-7527482

The MouseWheelGesture.Matches() method is not getting called when the mouse wheel is rotated while the CTRL key is getting pressed.

Actual behavior:

The MouseWheelGesture.Matches() method is getting called for the CTRL key is being pressed, but not for the mouse wheel being rotated.

MouseGesture not triggered

Expected behavior:

The MouseWheelGesture.Matches() method should be getting called when the mouse wheel being rotated with a MouseWheelEventArgs event argument.


Steps To Reproduce:

  1. Clone repository
  2. Build Visual Studio 2019 .NET solution
  3. Run/debug the solution
  4. Activate the main window
  5. Press CTRL++ to zoom in, CTRL+- to zoom out, or CTRL+0 to reset zoom to 1.0.

    => Works as expected.

  6. Move the mouse cursor to the main window, hold down CTRL key and rotate the mouse wheel.

    => Nothing happens. Yet, actually, zooming should be performed, just like when using the CTRL++/CTRL+- keys