2
我正在綁定實現我的應用程序中的拖動滾動功能,並在我的方式有問題。有誰能夠幫助我? 我有一個ScrollViewer,裏面有一個ItemsControl和ItemsTemplate內我有一個UserControl。我想在ItemsControl中拖動該用戶控件。當我拖動到ItemsControl的邊界時,我想讓ScrollViewer向下滾動。WPF拖動滾動不能正常工作
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