Windows phone 7 以编程方式滑动到下一个全景项目
是否可以通过编程从一个全景页面/项目移动到下一个,并获得与用手指滑动相同的动画滑动效果Windows phone 7 以编程方式滑动到下一个全景项目,windows-phone-7,Windows Phone 7,是否可以通过编程从一个全景页面/项目移动到下一个,并获得与用手指滑动相同的动画滑动效果 我可以使用PanoramaControl.DefaultItem属性移动到预期的项目/页面,但无法获得动画滑动效果。有什么想法吗?通过编程无法更改全景控件的选定索引。正如您所提到的,设置索引的唯一方法是使用DefaultItem属性,该属性仅在导航到包含全景的页面时有用 另一篇文章对此进行了讨论。我认为实现这一点的最简单方法是为每个项目创建单独的视觉状态,并创建动画幻灯片过渡以过渡到每个状态。然后您可以使用V
我可以使用PanoramaControl.DefaultItem属性移动到预期的项目/页面,但无法获得动画滑动效果。有什么想法吗?通过编程无法更改全景控件的选定索引。正如您所提到的,设置索引的唯一方法是使用DefaultItem属性,该属性仅在导航到包含全景的页面时有用
另一篇文章对此进行了讨论。我认为实现这一点的最简单方法是为每个项目创建单独的视觉状态,并创建动画幻灯片过渡以过渡到每个状态。然后您可以使用
VisualStateManager.gostate(,true)
启动状态更改。否-全景控件不支持这样的编程操作
如果您想体验这样的体验,那么您可以尝试手写全景控件-例如,您可以使用以下代码:
panoramaRoot.DefaultItem = (PanoramaItem)panoramaRoot.Items[1];
可能的情况是,只需将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();
}
}
使用my_panorama.SlideToPage(1)滑到第二页。我不认为这是最简单的方法;)也许不是最简单的,但这是我能想到的唯一方法,默认情况下最简单:PNot真的,这是关于动画,而不是如何更改项目。您应该注意,您的答案基于CodePlex的(非标准)库Microsoft.Phone.Controls.Toolkit。此外,您的代码确实依赖于类中的其他字段。我改变了,这样剪下来的就可以独立了。干杯