Windows phone 7 创建循环列表框
嗨,我想创建一个循环列表框,以便最后一个项目的下一个项目是第一个项目,反之亦然-创建一个没有顶部或底部的列表框Windows phone 7 创建循环列表框,windows-phone-7,Windows Phone 7,嗨,我想创建一个循环列表框,以便最后一个项目的下一个项目是第一个项目,反之亦然-创建一个没有顶部或底部的列表框 我知道WP7工具包中有一个循环选择器,但它不太适合我所需要的,因为它在外围项目中淡入淡出,而你有一个“选中”的项目总是在中间。 我查看了LinkedList集合,但它似乎不支持循环:“LinkedList(Of t)类不支持链接、拆分、循环,或其他可能使列表处于不一致状态的功能。” 是否有人知道我正在寻找的解决方案,或者我是否需要开发当前列表框和工具箱的LoopingSelector的
我知道WP7工具包中有一个循环选择器,但它不太适合我所需要的,因为它在外围项目中淡入淡出,而你有一个“选中”的项目总是在中间。
我查看了LinkedList集合,但它似乎不支持循环:“LinkedList(Of t)类不支持链接、拆分、循环,或其他可能使列表处于不一致状态的功能。” 是否有人知道我正在寻找的解决方案,或者我是否需要开发当前列表框和工具箱的LoopingSelector的混合体好多了 看看佩佐尔德的。我最近和你的朋友有同样的问题!我使用blend 4来处理这个问题,使我的列表在特定时间重置到特定位置,并在原始列表的前后添加一个列表副本 示例:我的列表是:1-2-3-4-5-6, 我会让它成为1-2-3-4-5-6-1-2-3-4-5-6-1-2-3-4-5-6 每隔20秒它就会复位到原来的位置。例如:如果用户在项目4上,它会将位置重置为项目4,但位于中间列表 我现在有个问题问你,如果有什么帮助的话,你可以查一下:
使用Scrollviewer包含列表框,放置操作完成事件,并使用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));
}
private void imagescrollview\u操作已完成(对象发送方,操作已完成事件参数e)
{
ScrollViewer ScrollViewer=发送方作为ScrollViewer;
如果(scrollviewer.HorizontalOffset>(listBox.ActualWidth-700))
scrollviewer.ScrollToHorizontalOffset(0);
否则如果(scrollviewer.HorizontalOffset<100)
scrollviewer.ScrollToHorizontalOffset((listBox.ActualWidth-487));
}
***注意:我允许我的scrollviewer以两种方式循环。Hi ng_ducnghia,因此如果我理解正确,您有一个列表,并且在该列表中您复制了原始列表两次,以便每个项目都有3个实例?要重置位置,是否使用ScrollIntoView方法?您好,n00b,我最近解决了这个问题。我在scrollviewer中有我的listbox(确保禁用listbox滚动),并且我使用scrollviewer的操纵完成事件,这意味着当你滚动到最后时,它将执行一个操作。然后我使用scrollToHorizontalOffset(或scrolltoVerticalOffset)将其设置为0,使其转到第一项。