0

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

4

1 に答える 1

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)に戻ります。幸いなことHoldEndに、はのデフォルト値ですFillBehavior

そしてもちろん、どこかで使用transformする必要があります。

于 2012-12-11T13:16:00.077 に答える