2014-03-05 61 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。

知道这不是最好的做法,但也许是最简单或最快的方法之一。

我希望这个帮助。问候!