使用ScrollViewer中包含列表框,把ManipulationCompleted事件,並使用ScrolltoVerticalOffset(0)有它循環滾動。也許我的代碼將有助於:
<ScrollViewer HorizontalScrollBarVisibility="Auto" Margin="-2,567,-1,0" x:Name="imagesScrollview"
Opacity="1" Grid.Row="1" RenderTransformOrigin="0.5,0.5"
ManipulationCompleted="imagesScrollview_ManipulationCompleted" Height="85" MouseLeftButtonDown="ScrollViewer_MouseLeftButtonDown">
<ScrollViewer.Background>
<ImageBrush ImageSource="/PhoneApp11;component/Images/top_friends_float.png" />
</ScrollViewer.Background>
<ListBox x:Name="listBox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="Auto" Height="80" Background="{x:Null}">
<ListBox.ItemTemplate>
<DataTemplate>
和操縱事件:
private void imagesScrollview_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
ScrollViewer scrollviewer = sender as ScrollViewer;
if (scrollviewer.HorizontalOffset > (listBox.ActualWidth - 700))
scrollviewer.ScrollToHorizontalOffset(0);
else if (scrollviewer.HorizontalOffset < 100)
scrollviewer.ScrollToHorizontalOffset((listBox.ActualWidth - 487));
}
***請注意:我讓我的ScrollViewer在兩個單向循環。
您好ng_ducnghia,所以如果我理解正確,你有一個列表,並在該列表中複製原始列表兩次,以便每個項目有3個它的實例? 重置位置是否使用ScrollIntoView方法? – n00b
嗨n00b,我最近解決了這個問題。我在滾動查看器裏面有我的列表框(確保你禁用列表框滾動),並且我使用scrollviewer的操作完成事件,這意味着當你滾動到結尾時,它會採取行動。然後,我通過使用scrollToHorizontalOffset(或scrolltoVerticalOffset)將它轉到第一項。 –