Если то, что вы ищете, перемещает прокрутку на один пиксель при каждом повороте колеса мыши, вот способ.
Регистрация события предварительного просмотра колеса мыши.
<ScrollViewer Height="350" Width="525" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<Canvas Height="650" Width="510">
<Button Name="b" Height="30" Width="525" Content="Button text"/>
</Canvas>
</ScrollViewer>
Переместите прокрутку на1 пиксель каждый раз, когда происходит событие, и установите его как обработанный.
private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
ScrollViewer scrollViewer = sender as ScrollViewer;
double offset = scrollViewer.VerticalOffset - Math.Sign(e.Delta);
scrollViewer.ScrollToVerticalOffset(Math.Min(Math.Max(offset, 0), scrollViewer.ExtentHeight));
e.Handled = true;
}