Добавьте обработчик событий PreviewMouseWheel
, чтобы вручную обрабатывать прокрутку.Кроме того, замените ContentTemplate
ListViewItem
для настройки его внешнего вида (а именно, уберите выделение и выделение при наведении курсора мыши):
<ScrollViewer PreviewMouseWheel="OnPreviewMouseWheel">
<StackPanel>
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border Padding="4,2">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</StackPanel>
</ScrollViewer>
Вот обработчик события:
private void OnPreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
var scrollViewer = (ScrollViewer)sender;
scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset - e.Delta);
e.Handled = true;
}
Ваш ListView
начинает выглядеть как простой ItemsControl
, поэтому рассмотрите возможность его использования (хотя ItemsControl
не имеет собственного режима прокрутки).