Я работаю над приложением Windows Phone 8. Я использую Storyboard для анимации серии изображений. Он работает нормально, но я хочу вызвать конкретный метод за одну секунду до завершения анимации. Я использую этот код: Есть ли способ сделать то, что я хочу?Анимация с помощью раскадровки Windows phone 8
var storyboard12 = new Storyboard
{
// RepeatBehavior = RepeatBehavior.Forever
};
var animation = new ObjectAnimationUsingKeyFrames();
Storyboard.SetTarget(animation, animationImage);
Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));
storyboard12.Children.Add(animation);
for (int i = 1; i <=16; i++)
{
var keyframe = new DiscreteObjectKeyFrame
{
KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(300*i)),
Value = String.Format("/Images+Audio/images/animation images/2_Driving-a-car/Drive_background3 ({0}).png", i)
};
animation.KeyFrames.Add(keyframe);
}
DispatcherTimer timer11 = new DispatcherTimer();
timer11.Interval = TimeSpan.FromSeconds(4.1);
timer11.Tick += timer11_Tick;
timer11.Start();
storyboard12.Begin();
storyboard12.Completed += storyboard12_Completed;
}
void timer11_Tick(object sender, EventArgs e)
{
var timer = (DispatcherTimer)sender;
timer.Stop();
changeBackgroundImage3();
}
Большое спасибо за ответ. Но проблема в том, что когда мы можем запустить второй раскадровки? – Mohit
Моя проблема в том, что пока я добавляю анимацию раскадровки и хочу вызвать еще одну анимацию раскадровки с последовательностью изображений за одну секунду до завершения первой. – Mohit
Вы можете рассчитать продолжительность первой раскадровки. Например, если продолжительность первого раскадровки составляет 4 секунды, вам необходимо отложить время начала второго раскадровки с 3 секундами. Проверьте свойство * BeginTime * класса Storyboard *. –