WPF Storyboard останавливается сам
-
08-07-2019 - |
Вопрос
У меня есть раскадровка, которая, кажется, сама останавливается случайным образом, я не могу на всю жизнь понять, почему.
Кажется, для остановки и случайных интервалов.
private void CreateStoryboard(int from)
{
int? targetTo;
Duration dur;
targetTo = 150;
dur = 150;
Int32Animation element = new Int32Animation();
element.From = from;
element.To = targetTo;
element.Duration = dur;
Storyboard.SetTargetProperty(element, new PropertyPath(CurrentFrameProperty));
_filmstripStoryboard = new Storyboard {SpeedRatio = this.FrameRate};
_filmstripStoryboard.Children.Add(element);
_filmstripStoryboard.Completed += new EventHandler(FilmstripStoryboard_Completed);
_filmstripStoryboard.Begin(this, true);
}
Как вы можете заметить, я влияю на пользовательский CurrentFrameProperty " DP, у которого есть метод обратного вызова, который я распечатываю текущий кадр.
По какой-то причине, и я просто не знаю, почему раскадровка просто останавливается. Завершенное событие НЕ запускается, и метод обратного вызова перестает вызываться.
И я уверен, что я нигде не вызываю stop ().
Если у кого-то возникла эта проблема или она может помочь мне отладить ее, я был бы очень признателен.
Решение 2
Это были деконструкторы! Мои объекты со ссылкой на раскадровки и анимацию разрушались, поэтому анимация выглядела так, как будто замерзла.
ошибка пользователя:)
Другие советы
Ваш код должен работать. Я не уверен, что делает SpeedRatio = this.FrameRate, но вы можете легко протестировать свой код, удалив этот фрагмент. Я думаю, что какой-то другой фрагмент кода влияет на ваш DpendencyProperty, и этот многопоточный код кусает вас.