2011-11-16 12 views
1

コントロールを表示するためにScaleTransformを0から1にアニメーション化しようとしています。ScaleTransformアニメーションの後にコントロールが表示されない

次のコードは私にとって完璧なようです。私はStackOverflowの他の質問からのアプローチをここにコピーしました。はい、アニメーションが実行されます(少なくともCompletedが呼び出されます)。ただし、ビジュアルは決して発生しません。これは0から1になるので、コントロールは決して現れません。手動で1(アニメーションなし)に設定しようとしましたが、問題はありません。

== 1に== 0 & &から== 0 & &期間== 3000 & &を始めると仮定してください:

// 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(); 

明らかに何かがありますか?

答えて

0

アニメーションの前にトランスフォームの初期値を設定する必要があります

関連する問題