我有一个 Storyboard,我在其中制作一个矩形,就像 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);
当它向上旋转矩形时,我试图获得那个角度,但它只是返回零。
最佳答案
你一定做错了什么,考虑这个例子:
<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}" />
rt.BeginAnimation(RotateTransform.AngleProperty, new DoubleAnimation(0, 60, TimeSpan.FromSeconds(1), FillBehavior.HoldEnd));
它显示的值很好。
如果您将 rt.Angle
分配给某个变量,该变量将在该时间点具有变换角度的值,它将不会更改同时rt.Angle
属性。
如果您不熟悉我在上面代码中使用的数据绑定(bind),您可能需要查看 overview .
关于c# - 获取双动画的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244634/