2011-11-16 33 views
1

我試圖將ScaleTransform從0移動到1以便顯示控件。ScaleTransform動畫後永遠不會出現控制

下面的代碼似乎對我來說是完美的。我在StackOverflow上覆制了其他問題的方法。是的,動畫運行(至少Completed被提出),但是,視覺永遠不會發生。由於這是從0到1,控制從不出現。我試圖手動將其設置爲1(沒有動畫),並沒有問題,工作。

請假設開始== ==從0 & &時間== 3000 & & & &到== 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(); 

有什麼明顯?

回答

0

變換的初始值必須在動畫之前設置