ScrollViewer molette de la souris ne fonctionne pas

Je suis actuellement en train de travailler sur mon premier projet WPF et d'essayer de faire une liste déroulante.
Au début je pensais que cela pourrait être fait facilement par la limitation de la liste de la largeur et la hauteur et donc de forcer une barre de défilement apparaissent automatiquement chaque fois que le contenu dépasse son espace. Cela semble très bien au début, mais en raison de la manipulés PreviewMouseDown-Événement (qui permet de glisser la liste des éléments), il ne fonctionne pas après la sélection d'un élément.

Deuxième tentative (à l'aide de ScrollViewer)

<ScrollViewer>
    <ListView ItemsSource="{Binding FileViewModels}"
              PreviewMouseDown="ListView_MouseMove"
              Height="450" Width="200"/>
</ScrollViewer>

De cours, ce qui a entraîné une deuxième barre de défilement lorsque la liste de contenu est devenue plus grande que sa hauteur max. Et en faisant glisser la barre ne fonctionne toujours pas après avoir sélectionné un élément.

Troisième (assez stupide) tentative (désactivation de la barre de défilement double)

<ScrollViewer>
    <ListView ItemsSource="{Binding FileViewModels}"
              PreviewMouseDown="ListView_MouseMove"
              Height="450" Width="200"
              ScrollViewer.VerticalScrollBarVisibility="Disabled"
              ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
</ScrollViewer>

Cette supprimé la barre de défilement double et a permis de défilement via la molette de la souris mais désactivé la barre de défilement, de sorte que vous ne pouvait pas se déplacer en cliquant et en faisant glisser.

Quatrième tentative (taille constante du ScrollViewer)

<ScrollViewer Height="450" Width="200">
    <ListView ItemsSource="{Binding FileViewModels}"
              PreviewMouseDown="ListView_MouseMove"/>
</ScrollViewer>

Supprimé la largeur/hauteur de la contrainte de la ListView et déplacé vers le ScrollViewer. Cela permet à la barre de défilement et supprime les doublons. Malheureusement, la molette de la souris ne fonctionne plus (en faisant glisser la barre de défilement fonctionne très bien).

Quelqu'un pourrait-il m'expliquer pourquoi la molette de la souris ne fonctionne plus et comment résoudre ce problème?

Modifier
Peut-être que je devrais retourner à ma première solution.

Évidemment, la liste modèle de l'contient déjà un ScrollViewer. Le problème restant seraient alors je ne peux pas faire glisser la barre de défilement après avoir sélectionné un élément en raison de la manipulés PreviewMouseDown événement (défilement via la molette de la souris fonctionne encore dans ce cas). Dois-je gérer le glissement des éléments différemment (il a bien fonctionné pour moi, avant de vouloir ajouter une barre de défilement)? Ou est-il un moyen de détecter si le curseur est au-dessus de la barre de défilement (pour que je puisse ensuite désélectionner l'élément qui permet le défilement)?
Ou il y en a d'autres suggestions?

InformationsquelleAutor sadeniju | 2013-04-26