Ribbon and mouse wheel

Jan 7, 2009 at 1:56 PM
The ribbon responds to MouseWheel events by switching the tabs. This is not very useful since the tabs are relatively few and the wheel is used to navigate large lists.

The problem is that if you have a RibbonComboBox with many elements and you NEED to use the wheel , what happens is that the wheel still switches tabs. Scrolling RibbonComboBox lists with the wheel is now impossible!

In Office 2007 ribbon the wheel still switches between tabs, but not when you have an open combo box - then it scrolls the list as expected.


Coordinator
Jan 9, 2009 at 9:49 PM
Hi Banko,

Thanks for reporting the issue.

Yes, it is an office 2007 parity issue. It looks like RibbonComboBox should handle the mouse wheel scroll input, so it doesn’t bubble up to RibbonTab.

I filed a bug to track the issue.

Thanks,
William
Coordinator
Jan 12, 2009 at 11:46 PM
Edited Jan 12, 2009 at 11:50 PM

It looks like the root cause is that we’re handling the MouseWheel input event in preview call back OnPreviewMouseWheel method in Ribbon.cs. A possible fix would be changing the if statement in OnPreviewMouseWheel method below.

From

            if (!this.IsMinimized && this.SelectedTab != null)

 

To

            if (!this.IsMinimized && this.SelectedTab != null && (Mouse.Captured == this || Mouse.Captured == null))

This way we only handle the event when the captured is Ribbon or null.

Thanks,
William

Nov 7, 2009 at 10:15 AM

Hi,

 

I have the same problem.

Where can I find the Source of the Ribbon to change the mentioned row in ribbon.cs?

 

Thanks,

Tucca