2014-03-05 101 views
0

我已經爲我的圖標創建了淡出動畫,但是當動畫完成時圖標又回到了alpha 0.我怎樣才能讓他留在1?完成後WPF淡入動畫消失

var a = new DoubleAnimation 
      { 
       From = 0.0, 
       To = 1.0, 
       FillBehavior = FillBehavior.Stop, 
       Duration = new Duration(TimeSpan.FromSeconds(1)) 
      }; 
      var storyboard = new Storyboard(); 

      storyboard.Children.Add(a); 
      Storyboard.SetTarget(a, IconGlass); 
      Storyboard.SetTargetProperty(a, new PropertyPath(OpacityProperty)); 
      storyboard.Begin(); 

     } 

XAML:

<StackPanel Name="IconGlass" Orientation="Horizontal" Margin="0,0,0,39" Opacity="0"> 
+1

你覺得'FillBehavior.Stop'是什麼意思? –

+0

謝謝,請張貼它作爲答案 – Dim

回答

1

出現這種情況,因爲在你的StackPanel你有房產不透明度設置爲0,你在做什麼,

  1. 你有一個StackPanel與透明度0
  2. 您將一個Animation添加到您的StackPanel以增大不透明度。
  3. 但完成動畫後,StackPanel中都會有他不透明度的默認值,也就是0

它不是最好的方式,但你可以刪除透明度=「0」並添加能見度= 「崩潰」

而當你動畫開始把你的StackPanel可見。

IconGlass.Visibility = Visibility.Visible; 

所以當完成動畫時,將不會有desPaarar StackPanel。

知道這不是最好的做法,但也許是最簡單或最快的方法之一。

我希望這個幫助。問候!