8

I was kind of expecting my ScrollViewer's child controls to hand the MouseWheel events back up the the ScrollViewer automatically, and that's not the case.

I have a ScrollViewer with a ListBox in it. If I manually resize the width of the ListBox to be less than the ScrollViewer, the MouseWheel works on all of the ScrollViewer but has no effect when the mouse is positioned above the ListBox.

What's the standard way to do this? Do I put an event trigger on the ListBox that fires the event on the parent? Do I handle and reroute the event in the code behind?

H.B.
  • 166,899
  • 29
  • 327
  • 400
Rich
  • 36,270
  • 31
  • 115
  • 154
  • 1
    Answer is here: http://serialseb.blogspot.com/2007/09/wpf-tips-6-preventing-scrollviewer-from.html –  Feb 03 '11 at 14:02

1 Answers1

16

The ListBox's template has a ScrollViewer in it, so that ScrollViewer will be handling the events and stopping them from propagating up the visual tree.

What exactly are you trying to achieve by having a ListBox inside a ScrollViewer? Perhaps you need to re-template the ListBox, but it's impossible to say without further info.

Kent Boogaart
  • 175,602
  • 35
  • 392
  • 393
  • I had no idea that the ScrollViewer was part of the ListBox's template, so I was under the assumption that I had to put the ListBox inside of a ScrollViewer. Thanks. – Rich Apr 17 '09 at 17:27