我在实施动态枢轴控制方面遇到了麻烦。 我想做的是使用枢轴创建一个图像库,您可以通过滑动更改图像。 这通过在我的可观察集合上绑定它的itemsource以在每个pivotitem上显示一个图像,本身与枢轴控件一起工作。 问题是,当我的图库包含10张以上的图片时,这个解决方案占用了大量内存,因为它创建了相同数量的pivotitems。
我尝试的是使用3个项目初始化我的集合,当前显示的项目,上一个和下一个项目,当用户滑动时,我更新了我的列表。 我尝试使用“SelectionChanged”事件以及手势监听器...到目前为止没有成功。 有没有人试过这样做?如果是,我该如何实施呢?
答案 0 :(得分:2)
我做了类似的事情,但不要使用Pivot控件。下载Silverlight工具包(http://silverlight.codeplex.com/)并使用GestureListener来捕获滑动操作:
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener DragCompleted="OnDrag"/>
</toolkit:GestureService.GestureListener>
然后在代码中,您有一个捕获滑动事件的事件处理程序,并相应地更新图像。这是我用来更改页面的事件处理程序:
private void OnDrag(object sender, DragCompletedGestureEventArgs e)
{
if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
{
if (e.HorizontalChange < 0)
{
TurnPagesForward(1);
}
else
{
TurnPagesBackward(1);
}
}
}
答案 1 :(得分:1)
如果您更新列表中的项目,您的绑定将会丢失,因此这可能不会很好。
这应该确保您可以在不移除或添加任何可见项目的情况下来回移动。
我不确定这是否有用,但值得一试。 : - )
答案 2 :(得分:0)
不要这样做。很多人都尝试过,它不能扩展到大量的图像。
虽然如果可以使用枢轴控件来创建简单的图像导航控件真的很好,但这是不切实际的。您需要使用不同的方法自行完成更复杂的路径。 (许多人尝试过不同的方式。根据您的需求/经验/偏好选择最佳方式。)