У меня есть два холста в сетке, полные сцены, изображения, которые я хочу перенести, мне интересно, как бы я перешел между этими двумя элементами управления 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 или около того пикселей, она не скользит полностью.