【发布时间】:2022-01-05 19:30:33
【问题描述】:
我正在尝试弄清楚如何在 Avalonia 中制作动画。
我有一条包含 4 个线段的路径,我想将每个点设置为动画到一个新位置。在 WPF 中,我是这样做的:
public void AnimatePoints(PointCollection pts, TimeSpan timespan, bool randomized = true, Action onFinished = null)
{
Points = PointCollection.Parse(PathString);
//PathFigure needs an animation too (for the start point), otherwise the first point always stays in one place
var pfa = new PointAnimation(pts[0], timespan);
if (onFinished != null)
{
pfa.Completed += (sender, args) => onFinished();
}
PathFigure.BeginAnimation(PathFigure.StartPointProperty, pfa);
for (int i = 0; i < pts.Count; i++)
{
var pa = new PointAnimation(pts[i], timespan);
if (randomized)
{
LineSegments[i].BeginAnimation(LineSegment.PointProperty, pa);
}
else
{
LineSegments[i].BeginAnimation(LineSegment.PointProperty, pa);
}
}
}
如何在 Avalonia 中使用代码执行相同的操作?我尝试过使用 PathTransition,但 PathFigure 和 LineSegments 都不是动画的。
【问题讨论】:
标签: c# avaloniaui avalonia