以编程方式滑动到下一个Panorama项目

Joh*_*rth 5 windows-phone-7

是否可以以编程方式从一个全景页面/项目移动到下一个并获得与手指滑动时相同的动画滑动效果

我可以使用PanoramaControl.DefaultItem属性移动到预期的项目/页面,但您不会获得动画滑动效果.这里有什么想法?

小智 13

它可能,只需将DefaultItem的设置放在SlideTransition Completed事件之间,您就完成了:

public static class PanoramaExtensions
{
    public static void SlideToPage(this Panorama self, int item)
    {

        var slide_transition = new SlideTransition() { };
        slide_transition.Mode = SlideTransitionMode.SlideLeftFadeIn;
        ITransition transition = slide_transition.GetTransition(self);
        transition.Completed += delegate
        {
            self.DefaultItem = self.Items[item];
            transition.Stop();
        };
        transition.Begin();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用my_panorama.SlideToPage(1)滑动到第二页.

  • 您应该注意,您的答案基于CodePlex的(非标准)库Microsoft.Phone.Controls.Toolkit.此外,您的代码确实依赖于您班级中的其他字段.我改变了这一点,以便剪断是自包含的.干杯 (2认同)

小智 6

您可以使用以下代码:

panoramaRoot.DefaultItem = (PanoramaItem)panoramaRoot.Items[1];
Run Code Online (Sandbox Code Playgroud)


Blo*_*nty 1

无法通过编程更改全景控件的选定索引。正如您提到的,设置索引的唯一方法是使用 DefaultItem 属性,该属性仅在导航到包含全景图的页面时才有用。

是另一篇讨论它的帖子。