Я установил раскадровку для анимации эллипса вдоль определенного пути, как показано здесь: http://msdn.microsoft.com/en-us/library/ms743217.aspx, сделав несколько модификаций в соответствии с моими потребностями. Однако, когда я пытаюсь запустить мою программу, она дает мне AnimationException:Ошибка анимации пути WPF
Cannot animate the 'Center' property on a 'System.Windows.Media.EllipseGeometry' using a 'System.Windows.Media.Animation.PointAnimationUsingPath'. For details see the inner exception.
Внутреннее исключение просто гласит: Value does not fall within the expected range.
. Я никогда раньше не использовал раскадровку, поэтому я понятия не имею, что делать здесь.
EDIT: Вот мой код как есть. Он прошел через некоторые изменения, и я еще не вынул старые комментарии, так что согласитесь, как есть.
Location current = null;// locationEnum.Current;
Point start = new Point();
var segment = new PolyBezierSegment();
foreach (var location in locations) {
if (current == null) {
current = location;
start = new Point(current.X, current.Y);
}
else {
//MessageBox.Show(location.X.ToString() + "," + location.Y.ToString());
segment.Points.Add(new Point(location.X, location.Y));
//current = location;
}
}
//MessageBox.Show(start.ToString());
var ellipseGeometry = new EllipseGeometry(start, 15, 15);
var ellipsePath = new System.Windows.Shapes.Path {
Fill = new SolidColorBrush(Colors.Red),
Data = ellipseGeometry,
Margin = new Thickness(15)
};
cnvMap.Children.Add(ellipsePath);
var animationPath = new PathGeometry();
var figure = new PathFigure();
figure.StartPoint = start;
figure.Segments.Add(segment);
animationPath.Figures.Add(figure);
animationPath.Freeze();
var animation = new PointAnimationUsingPath {
PathGeometry = animationPath,
Duration = TimeSpan.FromSeconds(10)
};
Storyboard.SetTarget(animation, ellipseGeometry);
Storyboard.SetTargetProperty(
animation, new PropertyPath(EllipseGeometry.CenterProperty));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(animation);
ellipsePath.Loaded += (sender, e) => {
//MessageBox.Show("Horray");
storyboard.Begin();
};
Какая модификация вызвала сбой анимации? – Heinzi 2010-11-29 01:55:28
Опубликуйте свой код, с ошибкой, чтобы смутно помочь без него. – Donnie 2010-11-29 01:56:54