Хорошо, поэтому я работаю на экране загрузки, и я хочу немного его разжечь.
В основном то, что я пытаюсь сделать, - это анимировать объект по данным геометрии пути... Я подчеркиваю "вдоль", потому что сохранение фиксированного объекта по пути по касательной - это не то, что я хотел бы сделать
Это лучшее представление о том, что я пытаюсь сделать:
Я могу использовать матричное преобразование для отправки этого пограничного элемента по пути, но оно завершается как тангенциальная анимация, которая перемещается и вращается с контуром, но не сгибается, чтобы соответствовать форме пути... Здесь является примером этого:
<Border Background="Black" BorderBrush="Transparent" Width="20" Height="20">
<Border.RenderTransform>
<MatrixTransform x:Name="MatrixT">
<MatrixTransform.Matrix>
<Matrix/>
</MatrixTransform.Matrix>
</MatrixTransform>
</Border.RenderTransform>
<Border.Triggers>
<EventTrigger RoutedEvent="Border.Loaded">
<BeginStoryboard>
<Storyboard>
<MatrixAnimationUsingPath Storyboard.TargetName="MatrixT" Storyboard.TargetProperty="Matrix" DoesRotateWithTangent="True" Duration="0:0:5" RepeatBehavior="Forever">
<MatrixAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M201.1,50.501C201.1,78.138,178.737,100.501,151.1,100.501L150.799,100.501C123.162,100.501,114.933,77.834,100.8,50.501L100.8,50.5C86.666,23.167,78.437,0.5,50.8,0.5L50.5,0.5C22.863,0.5,0.500000000000014,22.863,0.500000000000014,50.5L0.500000000000014,50.501C0.500000000000014,78.138,22.863,100.501,50.5,100.501L50.8,100.501C78.437,100.501,86.666,77.834,100.8,50.501L100.8,50.5C114.933,23.167,123.162,0.5,150.799,0.5L151.1,0.5C178.736,0.5,201.1,22.863,201.1,50.501L201.1,50.501z" PresentationOptions:Freeze="True"/>
</MatrixAnimationUsingPath.PathGeometry>
</MatrixAnimationUsingPath>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
Я придумал альтернативное решение, которое выглядит очень резким, но я хотел передать этот вопрос сообществу, чтобы узнать, есть ли у них какие-либо идеи о том, как выполнить эту задачу (или, если это вообще возможно).. Я сделал несколько обширных поисковых запросов по этому вопросу и не придумал ничего о том, как это сделать эффективным способом.
Требования:
- Он должен следовать (или "согнуть" ) путь
- Он должен иметь возможность масштабировать размер, не разбивая анимацию (многие из представлений анимации штрихов, которые я видел, могут работать только на одном уровне без повторной настройки свойств анимации)... viewbox вполне приемлемо для выполните этот
Если форма может быть сужена и затухать на задней стороне, что будет еще большим плюсом (см. изображение выше), но это может быть больше, чем возможно
EDIT: Чтобы уточнить, что я имею в виду под "изгибом"... Я имею в виду рисунок B ниже... цифра A - это стандарт, который я традиционно видел: