我有一个故事板,我正在制作一个矩形像MPH汽车仪表中的针一样向上移动.所以,我让它从0到60,我希望能够在它改变时获得它的当前值,所以我可以使用该值来制作数字仪表.
如何从双动画的开头到结尾获取当前值?我有这样的事情:
DoubleAnimation da = new DoubleAnimation();
da.Duration = new Duration(TimeSpan.FromSeconds(5));
da.From = 0;
da.To = 60;
RotateTransform rt = new RotateTransform();
rt.CenterX = 35;
rt.CenterY = 0;
rec3.RenderTransform = rt;
rt.BeginAnimation(RotateTransform.AngleProperty, da);
Run Code Online (Sandbox Code Playgroud)
当它向上旋转矩形时,我试图获得该角度,但它只返回零.
你一定做错了什么,考虑这个例子:
<Rectangle Width="100" Height="10" Fill="Red" HorizontalAlignment="Left" RenderTransformOrigin="1,0.5">
<Rectangle.RenderTransform>
<RotateTransform x:Name="rt" />
</Rectangle.RenderTransform>
</Rectangle>
<TextBlock Text="{Binding ElementName=rt, Path=Angle}" />
Run Code Online (Sandbox Code Playgroud)
rt.BeginAnimation(RotateTransform.AngleProperty, new DoubleAnimation(0, 60, TimeSpan.FromSeconds(1), FillBehavior.HoldEnd));
Run Code Online (Sandbox Code Playgroud)
它显示的值很好。
如果将 分配rt.Angle给某个变量,该变量将具有该时间点的变换角度值,它不会与属性同时更改rt.Angle。
如果您不熟悉我在上面代码中使用的数据绑定,您可能需要查看概述。