/// <summary> /// 垂直方向滾動到頂部 /// </summary> /// <param name="element"></param> /// <param name="scrollViewer"></param> public static void ScrollViewToVerticalTop(FrameworkElement element, ScrollViewer scrollViewer) { var scrollViewerOffset = scrollViewer.VerticalOffset; var point = new Point(0, scrollViewerOffset); var tarPos = element.TransformToVisual(scrollViewer).Transform(point); scrollViewer.ScrollToVerticalOffset(tarPos.Y); } /// <summary> /// 水平方向滾動到右側 /// </summary> /// <param name="element"></param> /// <param name="scrollViewer"></param> public static void ScrollViewToHorizontalRight(FrameworkElement element, ScrollViewer scrollViewer) { var scrollViewerOffset = scrollViewer.HorizontalOffset; var point = new Point(scrollViewerOffset, 0); var tarPos = element.TransformToVisual(scrollViewer).Transform(point); scrollViewer.ScrollToHorizontalOffset(tarPos.X); }
如果需要滾動到中間需要減去容器的一半寬度或者高度