一段时间闪烁动画风格

Blink animation style for period of time

所以我有 StackPanel,我想用闪烁 Style 显示几秒钟,然后我希望它消失。

我不希望它是自动的,而是从后面的代码控制它:

所以目前这是我目前所拥有的:

<Style x:Key="FaderStyle" TargetType="{x:Type StackPanel}">
            <Style.Resources>
                <Storyboard x:Key="FadeStoryboard">
                    <DoubleAnimation Storyboard.TargetProperty="(StackPanel.Opacity)" 
                                     From="0"
                                     To="1" Duration="0:0:0.7"
                                     RepeatBehavior="0:0:5"
                                     AutoReverse="True"/>
                </Storyboard>
            </Style.Resources>
            <Style.Triggers>
                <Trigger Property="Visibility" Value="Visible">
                    <Trigger.EnterActions>
                        <BeginStoryboard Storyboard="{StaticResource FadeStoryboard}"/>
                    </Trigger.EnterActions>
                </Trigger>
            </Style.Triggers>
        </Style>

后面的代码:

StackPanel sp;
Storyboard storyboard = Resources["FaderStyle"] as Storyboard;
            if (storyboard != null)
                storyboard.Begin(sp);

所以目前我的 StackPanel VisibilityCollapsed,在我启动动画后我仍然看不到它。

你的代码没问题。但是您启动动画的方法是错误的。当 Visibility 变为 Visible 时,触发器启动动画。不是相反(你的最后一段代码表明)启动动画不会改变可见性,因为你没有编写这样做的逻辑

因此,对于给定的代码,您需要更改可见性才能启动动画:

StackPanel sp;
sp.Visibility = Visibility.Visible;

注意动画只有在进入Visible状态时才会开始。这意味着您需要先将其折叠或隐藏。