WPF 및 C#. C# 코드의 애니메이션. 많은 포인트 (> 1000)의 경로 애니메이션이 있습니다. 애니메이션은 쉽게 스토리 보드와 포인트 애니메이션을 사용하여 프로그래밍 방식으로 만들어집니다. 반복 동작은 영원히 설정됩니다. 시간이 지나면 편의 기능이 꺼집니다. 나는 그것이 일종의 최적화라고 생각합니다. 쉽게 기능을 영원히 유지할 수 있도록이 기능을 끌 수 있습니까?약간의 시간이 지나면 wpf 애니메이션에서 자동으로 기능이 꺼집니다.
이것은 내 mainwindow_loaded 기능입니다. 내 xaml 코드에는 그리드라는 그리드가 하나만 있습니다. 라인이
BeginTime = new TimeSpan(0, 0, 0, 0, i * 10 + r.Next(200)),
같이 그리고 기능은 사라지지 않을 것이다 완화 될 수 있도록
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Random r = new Random(10);
Storyboard sb = new Storyboard();
Path p = new Path
{
Width = 500,
Height = 500,
Name = "Path",
Fill = Brushes.Green,
HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
Margin = new Thickness(25, 25, 0, 0),
VerticalAlignment = System.Windows.VerticalAlignment.Top
};
PathGeometry pg = new PathGeometry();
var pf = new PathFigure { StartPoint = new Point(0, 250) };
for (int i = 0; i < this.ActualWidth; i++)
{
LineSegment ls = new LineSegment { Point = new Point(i, 50) };
var pa = new PointAnimation
{
To = new Point(i, 80),
Duration = new Duration(new TimeSpan(0, 0, 0, 2)),
BeginTime = new TimeSpan(0, 0, 0, 0, i * 10), //+ r.Next(200)
AutoReverse = true,
RepeatBehavior = RepeatBehavior.Forever,
EasingFunction = new SineEase { EasingMode = EasingMode.EaseInOut }
};
Storyboard.SetTargetProperty(pa, new PropertyPath("(Path.Data).(PathGeometry.Figures)[0].(PathFigure.Segments)[" + i + "].(LineSegment.Point)"));
Storyboard.SetTarget(pa, p);
sb.Children.Add(pa);
pf.Segments.Add(ls);
}
LineSegment endSegment = new LineSegment { Point = new Point(this.ActualWidth, 250) };
pf.Segments.Add(endSegment);
pg.Figures.Add(pf);
p.Data = pg;
grid.Children.Add(p);
sb.Begin();
}
봅니다 코드 + r.Next (200)을 넣어.
애니메이션 코드를 표시합니다. –
확인 내 질문 업데이트 :) – masterkawaster