一段时间闪烁动画风格
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 Visibility
是 Collapsed
,在我启动动画后我仍然看不到它。
你的代码没问题。但是您启动动画的方法是错误的。当 Visibility
变为 Visible
时,触发器启动动画。不是相反(你的最后一段代码表明)启动动画不会改变可见性,因为你没有编写这样做的逻辑
因此,对于给定的代码,您需要更改可见性才能启动动画:
StackPanel sp;
sp.Visibility = Visibility.Visible;
注意动画只有在进入Visible
状态时才会开始。这意味着您需要先将其折叠或隐藏。
所以我有 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 Visibility
是 Collapsed
,在我启动动画后我仍然看不到它。
你的代码没问题。但是您启动动画的方法是错误的。当 Visibility
变为 Visible
时,触发器启动动画。不是相反(你的最后一段代码表明)启动动画不会改变可见性,因为你没有编写这样做的逻辑
因此,对于给定的代码,您需要更改可见性才能启动动画:
StackPanel sp;
sp.Visibility = Visibility.Visible;
注意动画只有在进入Visible
状态时才会开始。这意味着您需要先将其折叠或隐藏。