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