ScrollViewer如何让他继续从头滚动
时间: 2024-02-02 20:05:28 浏览: 35
如果想让ScrollViewer在滚动到末尾后继续从头开始滚动,可以使用ScrollViewer的ScrollChanged事件来实现。
首先,在XAML中,将ScrollViewer的VerticalOffset属性绑定到一个名为`scrollPos`的变量上:
```
<ScrollViewer x:Name="myScrollViewer"
CanContentScroll="True"
VerticalScrollBarVisibility="Auto"
ScrollChanged="myScrollViewer_ScrollChanged">
<TextBlock Text="这里是文本内容,如果超出控件边界则会自动滚动显示" />
</ScrollViewer>
```
然后,在代码中,实现ScrollChanged事件处理程序:
```
private void myScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
if (e.VerticalOffset == myScrollViewer.ScrollableHeight)
{
// 滚动到了底部,将滚动位置重置为0
scrollPos = 0;
myScrollViewer.ScrollToVerticalOffset(scrollPos);
}
else
{
// 记录当前滚动位置
scrollPos = e.VerticalOffset;
}
}
```
在事件处理程序中,如果滚动到了底部,将滚动位置重置为0,并通过ScrollToVerticalOffset方法将滚动条移动到顶部;否则,记录当前的滚动位置。这样,当滚动到末尾后,滚动条会自动从头开始滚动。