WPF中的ScaleY动画

时间:2012-12-11 11:47:06

标签: c# .net wpf animation storyboard

为什么以下代码不会将ScaleY更改为1

  var transform = new ScaleTransform { ScaleY = 0 };
  var story = new Storyboard();
  var animation = new DoubleAnimation { 
                    Duration = new Duration(new TimeSpan(0)), To = 1 };
  Storyboard.SetTarget(animation, transform);
  Storyboard.SetTargetProperty(animation, new PropertyPath("ScaleY"));
  story.Children.Add(animation);
  story.Begin();

我间接使用transform:它用于渲染一些UIElements并保存在DependencyProperty中。

1 个答案:

答案 0 :(得分:1)

如果您放弃故事板并直接致电BeginAnimation,它可能有用吗?

var transform = new ScaleTransform { ScaleY = 0 };
var animation = new DoubleAnimation { Duration = TimeSpan.Zero, To = 1 };

transform.BeginAnimation(ScaleTransform.ScalyYProperty, animation);

请注意,如果动画的FillBehavior的值为HoldEnd,则此效果只会有效。否则,动画属性将立即恢复为其本地值(此处为0)。幸运的是HoldEndFillBehavior的默认值。

当然,transform应该在某处使用