是否可以通过编程的方式从一个全景页面/项目移动到下一个,并获得与用手指滑动时相同的动画滑动效果?
我可以使用PanoramaControl.DefaultItem属性移动到预期的项目/页面,但您将无法获得动画滑动效果。这里有什么想法吗?
是否可以通过编程的方式从一个全景页面/项目移动到下一个,并获得与用手指滑动时相同的动画滑动效果?
我可以使用PanoramaControl.DefaultItem属性移动到预期的项目/页面,但您将无法获得动画滑动效果。这里有什么想法吗?
可以实现,只需将DefaultItem的设置放置在SlideTransition完成事件之间即可:
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) 可以滑动到第二页。panoramaRoot.DefaultItem = (PanoramaItem)panoramaRoot.Items[1];
我认为最简单的方法是为每个项目创建单独的可视状态,并创建动画幻灯片转换以过渡到每个状态。然后,您可以使用VisualStateManager.GoToState(<page>, <state>, true);
来启动状态更改。