ScrollViewer scroll;
private void Listview_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
if (scroll == null)
{
scroll = e.OriginalSource as ScrollViewer;
}
}
double lastPointX;
private void Listview_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
lastPointX = e.GetPosition(this).Y;
}
double distance;
private void EquipmentList_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
distance = e.GetPosition(this).Y - lastPointX;
scroll.ScrollToVerticalOffset(scroll.VerticalOffset - distance);
lastPointX = e.GetPosition(this).Y;
}
}
xaml
<ListView ScrollViewer.ScrollChanged="Listview_ScrollChanged"
PreviewMouseLeftButtonDown="Listview_MouseLeftButtonDown" MouseMove="EquipmentList_MouseMove"/>