c# wpf listbox scrollviewer

c# - Vista de lista dentro de scrollviewer previene scrollviewer scroll



wpf listbox (3)

¿Intentaste deshabilitar los ScrollBars ListView''s ?

<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" />

Tengo un scrollviewer con un par de cuadros de lista en él. El problema es si un usuario utiliza el rodillo central del mouse para desplazarse por el visor de desplazamiento mientras el mouse está sobre una vista de lista. La vista de lista desplaza su visor de desplazamiento interno hacia la parte inferior y luego continúa capturando el mouse, lo que evita que el visor de desplazamiento que contiene se desplace.

¿Alguna idea sobre cómo manejar esto?


Si ajusta la vista de lista interna en un visor de desplazamiento, el desplazamiento funcionará.

<ListView ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListView.ItemTemplate> <DataTemplate> <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"> <ListView> <ListView.ItemTemplate> <DataTemplate> </DataTemplate> </ListView.ItemTemplate> </ListView> </ScrollViewer> </DataTemplate> </ListView.ItemTemplate> </ListView>


Esto sucede porque la plantilla de contenido de ListView ( ListBox , en realidad) envuelve sus elementos con un ScrollViewer por sí mismo.

La forma más sencilla es deshabilitarla eliminando su propia Template para el ListView interno, uno que no crea un ScrollViewer :

<ListView> <ListView.Template> <ControlTemplate> <ItemsPresenter></ItemsPresenter> </ControlTemplate> </ListView.Template> ... </ListView>

Por cierto, lo mismo sucede si tienes un ListView dentro de un ListView (este fue mi caso).