Stworzyłem następujące XAMLWPF animacja ścieżka
<Canvas Background="Gray" Margin="10">
<Ellipse x:Name="Node1" Width="20" Height="20" Fill="AliceBlue" Canvas.Left="38" Canvas.Top="136" />
<Ellipse x:Name="Node2" Width="20" Height="20" Fill="AliceBlue" Canvas.Left="290" Canvas.Top="136" />
<Ellipse x:Name="object" Width="10" Height="20" Fill="Black" Canvas.Left="43" Canvas.Top="125" />
<Path Stroke="Black" StrokeThickness="1">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure StartPoint="50,145">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="100,100" />
<LineSegment Point="250,100" />
<LineSegment Point="300,145" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
Jak widać, stworzyłem 2 eliptyczne węzłów. Ścieżka łącząca dwa węzły i obiekt siedzący w węźle 1. Wszystko, co chcę tutaj zrobić, to animować obiekt w węźle 1 wzdłuż ścieżki w kierunku węzła2.
Próbuję wykonać animację przy użyciu kodu, ponieważ chcę, aby animacja zaszła w momencie kliknięcia węzła2. Walczyłem z DoubleAnimation, MatrixAnimation, storyboardem. Bardzo mylące. Proszę podzielić się wiedzą na temat tego, jak to osiągnąć. Mam nadzieję, że ten sam kod będzie działał z krzywymi i złożonymi ścieżkami.
Przetestowałem używając twojego metordu i działa dobrze. Ale nadal nie rozumiem tutaj kilku rzeczy. W jaki sposób stworzyłeś figury wykorzystywane w animacji? Jak utworzyć je za pomocą kodu C#? Powiedzmy na przykład, że muszę animować ten obiekt na ścieżce, którą użytkownik narysował, w jaki sposób mogę przekonwertować ścieżkę do ścieżki obliczeniowej? – SysAdmin
A dlaczego Canvas.GetLeft (@object) nie zmienia się po zakończeniu animacji? Byłoby to również pomocne, jeśli możesz podać link do dobrego samouczka, aby zrozumieć te podstawowe rzeczy. – SysAdmin
Spójrz na zaktualizowany wpis – StaWho