在一段时间内闪烁动画样式



所以我有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);

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

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

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

StackPanel sp;
sp.Visibility = Visibility.Visible;

请注意,动画只有在进入Visible状态时才开始。这意味着你需要先把它折叠起来或隐藏起来。

最新更新