参考 http://www.cnblogs.com/ListenFly/p/3281997.html
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中的绝对值处理其实是可有可无的。