问题描述
我使用 CarouselView
和 Timer
让它每 X 秒产生一次变化效果。
现在我发现有一些错误。 ScrollTo
并没有真正将 CarouselView
滚动到所询问的位置。设置 Position property
也无济于事。
他们只会根据发送的参数将位置滚动到高于或低于当前位置。
这是用于任何测试的 C#
:
Device.StartTimer(TimeSpan.FromSeconds(2),() =>
{
slidePosition++;
if (slidePosition == (CarouselView1.ItemsSource as ObservableCollection<LinksHeaderTitles>).Count - 1)
{
for (int i = slidePosition - 2; i >= 0; i--)
{
CarouselView1.ScrollTo(0,animate: false);
}
slidePosition = 0;
}
CarouselView1.ScrollTo(slidePosition);
return true;
});
解决方法
你可以试试 ScrollToPosition.Start :
CarouselView1.ScrollTo(slidePosition,position: ScrollToPosition.Start);
也许它会显示您的需求。