好的,我正在制作一个加载屏幕并想要增加一些效果。
基本上我想做的是沿着路径几何数据来动画化一个对象...我强调“沿着”是因为我不想让一个固定的对象沿着切线移动
这是我想要实现的最佳效果:
我可以使用矩阵变换将这个边框元素沿着路径发送出去,但它最终会变成一个切线动画,跟随路径移动和旋转,但不能弯曲以适应路径的形状...以下是一个示例:
<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>
我想出了一个看起来非常出色的替代方案,但我想向社区提出这个问题,看看他们是否有任何想法来完成这个任务(或者它是否可能)......我已经在这个问题上进行了一些广泛的谷歌搜索,但没有找到有效的方法。
要求:
- 必须沿着路径弯曲
- 必须能够按比例缩放而不破坏动画效果(我看到过许多笔画动画表示形式只能在一个大小下运行,否则需要重新配置动画属性)......视口框 perfectly 可以实现此目的
如果该形状可以在尾侧锐化和淡化,那将是更大的加分项(参见上面的图像),但可能超出了可能性
编辑: 为了澄清我的“弯曲”是什么意思......我指的是下面的 B 图... A 图是我传统上看到的标准: