Como fazer scrollviewer scroll pixels não componentes (wpf)

Eu estou tentando fazer o meu visualizador de rolagem rolar na perfeição, ou seja, eu tenho um visualizador de rolagem e ele contém um painel de pilha, o painel de pilha contém um controle de usuário feito pelo usuário. e eles podem aumentar ou diminuir dinamicamente em tempo de execução.

O problema é, suponha que eu tenha apenas 2 controles de usuário no meu painel de pilha, o visualizador de rolagem tem apenas 2 níveis de rolagem, então ele rola todo o controle do usuário para cada clique ou movimento do mouse.

como posso mudar isso? é uma propriedade ou há um erro no design?

aqui está o código xaml para isso:

<ScrollViewer HorizontalAlignment="Left" Height="420" VerticalAlignment="Top" Width="862" Margin="0,0,-2,0" CanContentScroll="True" PanningRatio="0.1">
                <StackPanel x:Name="hpList" HorizontalAlignment="Left" Height="422" VerticalAlignment="Top" Width="843"/>
            </ScrollViewer>

e o painel de pilha se expande ou encolhe de forma dinâmica.

questionAnswers(1)

yourAnswerToTheQuestion