ScrollViewrとListBoxが入れ子になっているとき、ListBoxはスクロールバーが表示されていなくても、マウスカーソルの位置によっては親のScrollViewerが動かないことがあります。
これはBubble Eventが子エレメントでハンドルされてしまっていることが原因なので、スクロールイベントScrollChangedのメソッド内でe.Handledをfalseにしてやればいいと思います。(未確認)
これをXAMLで行いたい場合には(DataTemplate内でListBox等を定義している場合はこちらの方法しか使えない)、ScrollViewer.CanContentControl="False"を子エレメントに指定すれば良いようです。
<ScrollViewer> <Grid> <ListBox ScrollViewer.CanContentScroll="False" ItemsSource="{Binding}"> </ListBox> </Grid> </ScrollViewer>