完成后WPF淡入淡出动画消失

时间:2014-03-05 08:55:30

标签: c# wpf xaml

我为我的图标创建了淡入淡出动画,但是当动画完成后,图标会重新设置为alpha 0.如何让他留在1?

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 个答案:

答案 0 :(得分:1)

发生这种情况是因为在你的StackPanel中你将Property Opacity设置为0.你正在做的是,

  1. 您有一个不透明度为0的StackPanel。
  2. 您可以将动画添加到StackPanel以增加不透明度。
  3. 但在完成动画后,StackPanel的默认值为Opacity,即0。
  4. 这不是最佳方式,但您可以删除 Opacity =“0”并添加可见性=“折叠”

    当你动画开始时,你的StackPanel可见。

    IconGlass.Visibility = Visibility.Visible;
    

    因此,在完成动画制作时,StackPanel不会消失。

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

    我希望这有帮助。问候!