有没有办法让物品通过FlipView循环?从最后一项到第一项,反之亦然。我见过这个解决方案http://blogs.msdn.com/b/synergist/archive/2013/09/21/windows-8-flipview-looping-sample.aspx
它适用于W8,好的,但在Windows通用平台(通用应用程序)下会抛出相同的代码。
答案 0 :(得分:2)
您提到的解决方案是对的,您可以参考此解决方案来实现您自己的解决方案。
但是文章中链接的示例不起作用,因为存在一个小错误。在 MainPage.xaml 中,它使用以下代码来使用附加属性
Comparable<String>
但命名空间前缀“Synergist”是错误的,它应该是“增效剂”,因为它被定义为<FlipView x:Name="FlipView" Synergist:FlipViewExtensions.IsLooping="True">
。所以只需将“增效剂”改为“增效剂”:
xmlns:synergist="using:Synergist"
样本效果很好。
如果您在UWP中使用这些代码,它将在<FlipView x:Name="FlipView" synergist:FlipViewExtensions.IsLooping="True">
处抛出异常。
WinRT信息:在进行其他修改时无法完成集合修改。
System.Runtime.InteropServices.COMException(0x8000FFFF):灾难性故障
在进行其他修改时无法完成收藏修改。
- at Windows.UI.Xaml.Controls.ItemsControl.put_ItemsSource(Object value)
- 在Synergist.FlipViewExtensions.Initialize(FlipView flipView)
虽然很难说出这里有什么问题,但我们可以在为flipView.ItemsSource = loopingList;
分配或添加项目之后在代码隐藏中设置IsLooping
附加属性以避免此异常。例如:
FlipView.ItemsSource
请在Github上查看我的已完成样本。
答案 1 :(得分:2)
很难让FlipView循环并在UWP中保持良好的体验。
我使用compostion api实现了CarouselView来解决问题。在Github中查看。 CarouselView有几个功能:
它很容易使用,就像下面的代码一样。
<carousel:CarouselView x:Name="carousel" ItemWidth="500"
xmlns:carousel="using:CarouselView.Controls"/>
然后在代码后面设置ItemImageSource
(一个List<string>
依赖项属性)或使用绑定
carousel.ItemImageSource = new List<string>()
{
"https://img1.doubanio.com/view/photo/photo/public/p1204310498.jpg",
"https://img1.doubanio.com/view/photo/photo/public/p1547743259.jpg",
"https://img1.doubanio.com/view/photo/photo/public/p2183422782.jpg",
"https://img1.doubanio.com/view/photo/photo/public/p832662844.jpg",
"https://img1.doubanio.com/view/photo/photo/public/p752907403.jpg"
};
您可以在我的Github
中查看更多详细信息并查看示例