public AutoScroller(ItemsControl itemsControl)
 {
     if (itemsControl == null)
     {
         throw new ArgumentNullException("itemsControl");
     }
     this.itemsControl = itemsControl;
     this.scrollViewer = ListBoxDragSelectionBehavior.FindChild <ScrollViewer>(itemsControl);
     this.scrollViewer.ScrollChanged += new ScrollChangedEventHandler(this.OnScrollChanged);
     this.scrollContent       = ListBoxDragSelectionBehavior.FindChild <ScrollContentPresenter>(this.scrollViewer);
     this.autoScroll.Tick    += new EventHandler((object param0, EventArgs param1) => this.PreformScroll());
     this.autoScroll.Interval = TimeSpan.FromMilliseconds((double)ListBoxDragSelectionBehavior.AutoScroller.GetRepeatRate());
 }
 private bool Register()
 {
     this.scrollContent = ListBoxDragSelectionBehavior.FindChild <ScrollContentPresenter>(this.listBox);
     if (this.scrollContent != null)
     {
         this.autoScroller = new ListBoxDragSelectionBehavior.AutoScroller(this.listBox);
         this.autoScroller.OffsetChanged += new EventHandler <ListBoxDragSelectionBehavior.OffsetChangedEventArgs>(this.OnOffsetChanged);
         this.selectionRect = new ListBoxDragSelectionBehavior.SelectionAdorner(this.scrollContent);
         this.scrollContent.AdornerLayer.Add(this.selectionRect);
         this.selector = new ListBoxDragSelectionBehavior.ItemsControlSelector(this.listBox);
         this.listBox.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(this.OnPreviewMouseLeftButtonDown);
         this.listBox.MouseLeftButtonUp          += new MouseButtonEventHandler(this.OnMouseLeftButtonUp);
         this.listBox.MouseMove += new MouseEventHandler(this.OnMouseMove);
     }
     return(this.scrollContent != null);
 }