我正在尝试在 WPF 中创建动画,但我对放置所有内容的位置感到很困惑。我需要一个不断增长的圆圈,就像画自己一样。
为此,我有一个设计精美的圆圈(一个描边的圆圈,下面有一个模糊的描边圆圈)然后我有另一个带有 StrokeDashArray 的圆圈。我计划将这个圆圈用作第一个圆圈的 opacityMask,并为 StrokeDashArray 设置动画以显示圆圈。
我一直在玩,我可以将 StrokeDashArray 从 [0, 100] 修改为 [50 100] 并且我得到一条覆盖圆圈的增长线(我真的不明白 0 100 和 50 100 来自哪里......只是尝试直到它看起来不错。
所以现在我的问题是在哪里分发这些东西。
到目前为止,我的代码如下所示:
<UserControl bla bla bla bla>
<!-- The mask that should be animated -- >
<Ellipse Name="Mask" Stroke="White"StrokeThickness="13" StrokeDashArray="10 100"/>
<!-- StrokeDashArray should be animated from "0 100" to "50 100" -->
<!-- The Blurry shadow of the line -->
<Ellipse Name="blurry" Stroke="#FF7CA2CE" StrokeThickness="5">
<Ellipse.Effect>
<BlurEffect/>
</Ellipse.Effect>
<Ellipse.OpacityMask>
<VisualBrush Visual="{Binding ElementName=Mask}"/>
</Ellipse.OpacityMask>
</Ellipse>
<!-- The line itself -->
<Ellipse Name="core" Stroke="Blue" StrokeThickness="1">
<Ellipse.OpacityMask>
<VisualBrush Visual="{Binding ElementName=Mask}"/>
</Ellipse.OpacityMask>
</Ellipse>
</UserControl>
所以现在我需要在 StrokeDashArray 中的第一个元素上执行动画并从后面的代码(C#)启动它我还可以让动画作为资源在某个地方并从代码启动它,或者在代码中执行整个动画,我不在乎,但请具体说明在哪里添加代码。我感到迷茫。
我还尝试将模糊线和核心线添加到一个网格,然后将 VisualBrush 应用到它(所以我只应用一次,而不是两次)但效果更难看,因为模糊线被剪切并且不像我们那样柔和地结束想要它是hehehe
Sooo,任何帮助?!?!?!?!?!