C# WPF淡入动画在完成后消失

C# WPF淡入动画在完成后消失,c#,wpf,xaml,C#,Wpf,Xaml,我已经为我的图标创建了淡入淡出动画,但当动画完成时,图标将设置回alpha 0。我怎样才能让他留在1号楼 var a = new DoubleAnimation { From = 0.0, To = 1.0, FillBehavior = FillBehavior.Stop, Duration = new Duration(TimeSpan.FromSec

我已经为我的图标创建了淡入淡出动画,但当动画完成时,图标将设置回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中,属性“不透明度”设置为0。你所做的是

  • 您有一个不透明度为0的StackPanel
  • 将动画添加到StackPanel以增大不透明度
  • 但在完成动画后,StackPanel的默认值为“不透明度”,即0
  • 这不是最好的方法,但您可以删除Opacity=“0”并添加Visibility=“Collapsed”

    动画开始时,将StackPanel置于可见状态

    IconGlass.Visibility = Visibility.Visible;
    
    因此,在完成动画时,将不会删除StackPanel

    要知道这不是最好的做法,但可能是最简单或最快的方法之一


    我希望这有帮助。你好

    你认为FillBehavior.Stop是什么意思?谢谢,请将其作为答案发布
    IconGlass.Visibility = Visibility.Visible;