我在一个网格中有两个画布,我想要转换的全场景“图像”,我想知道如何在这两个 Canvas 控件之间进行转换。
以编程方式,我将第一个画布添加到网格中,然后将第二个画布添加到网格中,然后删除第一个画布,我真正想要做的是它们之间的过渡。
关于我如何以编程方式实现这一目标的任何建议?
谢谢。
编辑:我已经实现了这个方法,但是遇到了问题,谁能告诉我我是否用错了?
private void doTransitionIn(Canvas slide)
{
SlideTransition slideLeft = new SlideTransition();
slideLeft.Mode = SlideTransitionMode.SlideDownFadeIn;
ITransition transition = slideLeft.GetTransition(slide);
transition.Completed += delegate { transition.Stop(); }; transition.Begin();
}
private void doTransitionOut(Canvas slide)
{
SlideTransition slideLeft = new SlideTransition();
slideLeft.Mode = SlideTransitionMode.SlideDownFadeOut;
ITransition transition = slideLeft.GetTransition(slide);
transition.Completed += delegate { transition.Stop(); }; transition.Begin();
}
这是我使用它的方式:
SceneGrid.Children.Add(nextCanvas);
doTransitionIn(nextCanvas);
doTransitionOut(currentCanvas);
SceneGrid.Children.Remove(currentCanvas);
这样做的问题是动画似乎只从屏幕的一部分开始,例如,我只看到它滑动最后 20 像素左右,它不会一直滑动。