Elementos filho de scrollviewer impedindo a rolagem com a roda do mouse?

Estou com um problema ao mover a rolagem da roda do mouse para trabalhar no XAML a seguir, que simplifiquei para maior clareza:

<ScrollViewer
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"
CanContentScroll="False"
>
    <Grid
    MouseDown="Editor_MouseDown"
    MouseUp="Editor_MouseUp"
    MouseMove="Editor_MouseMove"
    Focusable="False"
    >
        <Grid.Resources>
            <DataTemplate
            DataType="{x:Type local:DataFieldModel}"
            >
                <Grid
                Margin="0,2,2,2"
                >
                    <TextBox
                    Cursor="IBeam"
                    MouseDown="TextBox_MouseDown"
                    MouseUp="TextBox_MouseUp"
                    MouseMove="TextBox_MouseMove"
                    />
                </Grid>
            </DataTemplate>
        </Grid.Resources>
        <ListBox
        x:Name="DataFieldListBox"
        ItemsSource="{Binding GetDataFields}"
        SelectionMode="Extended"
        Background="Transparent"
        Focusable="False"
        >
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemContainerStyle>
                <Style
                TargetType="ListBoxItem"
                >
                    <Setter
                    Property="Canvas.Left"
                    Value="{Binding dfX}"
                    />
                    <Setter
                    Property="Canvas.Top"
                    Value="{Binding dfY}"
                    />
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>
    </Grid>
</ScrollViewer>

Visualmente, o resultado é uma área de algum tamanho conhecidoDataFields lido de uma coleção pode ser representado comTextBoxes que têm posição arbitrária, tamanho, et cetera. Nos casos em que oListBoxA "área" estilizada é muito grande para ser exibida de uma só vez, a rolagem horizontal e vertical é possível, mas apenas com as barras de rolagem.

Para melhor ergonomia e sanidade, a rolagem da roda do mouse deve ser possível e normalmenteScrollViewer iria lidar com isso automaticamente, mas oListBox parece estar entregando esses eventos de tal forma que o paiScrollViewer nunca os vê. Até agora, só consegui fazer com que a rolagem das rodas funcionasseIsHitTestVisible=False tanto para oListBox ou o paiGrid, mas é claro que nenhum dos eventos de mouse do elemento filho funcionam depois disso.

O que posso fazer para garantirScrollViewer vê eventos de roda do mouse enquanto preserva outros para elementos filho?

Edit: Acabei de aprender queListBox tem um built-inScrollViewer que provavelmente está roubando eventos de roda do paiScrollViewer e que especificar um modelo de controle pode desativá-lo. Eu atualizarei esta questão se isso resolver o problema.

questionAnswers(4)

yourAnswerToTheQuestion