WPF之拖动项滚动条自滚动(当拖动项到达高度的边界时候滚动条自己可以上下滚动)
其实代码蛮简单的,在元素的DragOver事件中加入如下代码:
Point svPoint = e.GetPosition(sv); if (sv.ActualHeight-svPoint.Y <= 20) { sv.ScrollToVerticalOffset(this.sv.VerticalOffset + 5); } if (Math.Abs(svPoint.Y) <= 20) { sv.ScrollToVerticalOffset(sv.VerticalOffset - 5); }
其中,sv即Scrollviewer,使用的主要就是Scrollviewer的ScrollToVerticalOffset方法,动态修改Scrollviewer的滚动偏移量。另外if中的值可以根据自己需要进行适当调整,另外第二个if中的绝对值处理其实是可有可无的。