在ScaleTransform Animation之后,控件永远不会出现

时间:2011-11-16 00:58:55

标签: wpf animation

我试图将ScaleTransform从0设置为1,以显示控件。

以下代码对我来说似乎很完美。我已经在StackOverflow上复制了其他问题的方法。是的,动画运行(至少已完成已完成)但是,视觉永远不会发生。由于这是从0到1,因此控件永远不会出现。我试图手动将它设置为1(没有动画),那里没有问题,有效。

请假设开始== 0&&持续时间== 3000&&来自== 0&&到== 1:

// setup
var _Storyboard = new Storyboard
{
    BeginTime = TimeSpan.FromMilliseconds(begin),
    Duration = new Duration(TimeSpan.FromMilliseconds(duration)),
};
_Storyboard.Completed += (s, e) => { if (callback != null) callback.Invoke(); };

// force Scale Transform
var _ScaleTransform = new ScaleTransform() { ScaleX = from, ScaleY = from };
food.RenderTransform = _ScaleTransform;

// animate X
var _AnimateX = new DoubleAnimation { From = from, To = to };
_Storyboard.Children.Add(_AnimateX);
Storyboard.SetTarget(_AnimateX, _ScaleTransform);
Storyboard.SetTargetProperty(_AnimateX, new PropertyPath(ScaleTransform.ScaleXProperty));

// animate Y
var _AnimateY = new DoubleAnimation { From = from, To = to };
_Storyboard.Children.Add(_AnimateY);
Storyboard.SetTarget(_AnimateY, _ScaleTransform);
Storyboard.SetTargetProperty(_AnimateY, new PropertyPath(ScaleTransform.ScaleYProperty));

// start
_Storyboard.Begin();

有什么明显的东西吗?

1 个答案:

答案 0 :(得分:0)

必须在动画

之前设置Transform的初始值