Я привязываюсь к реализации функции перетаскивания в прокрутку в своем приложении и имею проблемы на своем пути. Кто-нибудь может мне помочь? У меня есть ScrollViewer и внутри него ItemsControl и в ItemsTemplate у меня есть UserControl. Я хочу перетащить этот UserControl в ItemsControl. Я хочу, чтобы ScrollViewer прокручивался вниз, когда я перетаскиваю до границ ItemsControl.WPF Drag-to-scroll работает неправильно
protected override void OnPreviewMouseMove(System.Windows.Input.MouseEventArgs e)
{
if (this.IsMouseCaptured)
{
// Get the new mouse position.
Point mouseDragCurrentPoint = e.GetPosition(this);
if (Math.Abs(mouseDragCurrentPoint.Y - this.ActualHeight) <= 50)
{
this._scrollStartOffset.Y += 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
if (mouseDragCurrentPoint.Y <= 50)
{
this._scrollStartOffset.Y -= 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
}
base.OnPreviewMouseMove(e);
}
Когда я начинаю волоча по телефону DragDrop.DoDragDrop()
скроллинга не происходит. Но когда я отключу перетаскивание, ScrollViewer прокручивается в зависимости от положения мыши. Возможно, есть что-то, что я не беру в руки, чтобы перетащить и захватить мышь? Спасибо за внимание. Garegin