Revision: 27134
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 24, 2010 13:57 by mkurdziel
Initial Code
private void ItemsList_DragOver(object sender, System.Windows.DragEventArgs e) { ListBox li = sender as ListBox; ScrollViewer sv = FindVisualChild<ScrollViewer>(ItemsList); double tolerance = 10; double verticalPos = e.GetPosition(li).Y; double offset = 3; if (verticalPos < tolerance) // Top of visible list? { sv.ScrollToVerticalOffset(sv.VerticalOffset - offset); //Scroll up. } else if (verticalPos > li.ActualHeight - tolerance) //Bottom of visible list? { sv.ScrollToVerticalOffset(sv.VerticalOffset + offset); //Scroll down. } } public static childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject { // Search immediate children first (breadth-first) for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) return (childItem)child; else { childItem childOfChild = FindVisualChild<childItem>(child); if (childOfChild != null) return childOfChild; } } return null; }
Initial URL
http://stackoverflow.com/questions/1316251/wpf-listbox-auto-scroll-while-dragging
Initial Description
Initial Title
Listbox drag scroll
Initial Tags
Initial Language
C#