У меня есть анимация внутри Поведения, но она не работает.Как получить жидкую анимацию с раскадровкой
Вот мой код анимации:
DoubleAnimationUsingKeyFrames animation = new DoubleAnimationUsingKeyFrames();
animation.SetValue(Storyboard.TargetPropertyProperty, new PropertyPath("(0).(1)", UIElement.RenderTransformProperty, RotateTransform.AngleProperty));
int keyFrameCount = 16;
double timeOffsetInSeconds = 0.1;
int targetValue = 12;
double totalAnimationLength = keyFrameCount * timeOffsetInSeconds;
double repeatInterval = RepeatInterval;
bool isShaking = IsShaking;
// Can't be less than zero and pointless to be less than total length
if (repeatInterval < totalAnimationLength)
repeatInterval = totalAnimationLength;
animation.Duration = new Duration(TimeSpan.FromSeconds(repeatInterval));
for (int i = 0; i < keyFrameCount; i++)
{
animation.KeyFrames.Add(new LinearDoubleKeyFrame(i % 2 == 0 ? targetValue : -targetValue, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(i * timeOffsetInSeconds))));
}
animation.KeyFrames.Add(new LinearDoubleKeyFrame(0, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(totalAnimationLength))));
Но, если я выбираю
int keyFrameCount = 360;
и
for (int i = 0; i < keyFrameCount; i++)
{
animation.KeyFrames.Add(new LinearDoubleKeyFrame(i, keyTime.FromTimeSpan(TimeSpan.FromSeconds(i * timeOffsetInSeconds))));
}
он будет вращаться очень гладкий круг.
Как добиться того, чтобы анимация проходила от 0 до 30 градусов, назад до -30 градусов, , а затем назад к 0 (чтобы немного свернуть). И пусть он выглядит бегло.
После некоторых попыток, я вижу, что (нормальный) взад и вперед не будет работать здесь, он ведет себя совершенно неконтролируемым!
отлично работает! Большое спасибо! –