Untergeordnete Elemente des Scrollviewer verhindern das Scrollen mit dem Mausrad?

Ich habe ein Problem damit, das Mausrad in der folgenden XAML zum Scrollen zu bringen, die ich aus Gründen der Übersichtlichkeit vereinfacht habe:

<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>

Optisch ist das Ergebnis ein Bereich bekannter Größe, in demDataFieldAus einer Sammlung gelesene s können mit dargestellt werdenTextBoxes, die willkürliche Position, Größe usw. haben. In Fällen, in denen dieListBoxDer gestaltete "Bereich" ist zu groß, um auf einmal angezeigt zu werden. Horizontales und vertikales Scrollen ist möglich, jedoch nur mit den Bildlaufleisten.

Zur Verbesserung der Ergonomie und Gesundheit sollte das Scrollen mit dem Mausrad normalerweise möglich seinScrollViewer würde damit automatisch umgehen, aber dasListBox scheint, diese Ereignisse so zu übergeben, dass der ElternteilScrollViewer sieht sie nie. Bisher konnte ich nur das Scrollen mit dem Rad in Gang setzenIsHitTestVisible=False entweder für dieListBox oder die ElternGridAber natürlich funktioniert danach keines der Mausereignisse des untergeordneten Elements.

Was kann ich tun, um das zu gewährleisten?ScrollViewer werden Mausrad-Ereignisse angezeigt, während andere für untergeordnete Elemente beibehalten werden?

Edit: Das habe ich gerade gelerntListBox hat eine eingebauteScrollViewer Das ist wahrscheinlich Rad Ereignisse von den Eltern zu stehlenScrollViewer und das Angeben einer Steuerungsvorlage kann es deaktivieren. Ich werde diese Frage aktualisieren, wenn das Problem dadurch behoben wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage