最初我有一个DataTrigger,它将可见性设置为折叠:
awk '{gsub("default = \"\"", "default = \"$vc_address\"", $0); print > FILENAME}' terraform.tf
我想要平滑的FadeOut / FadeIn动画而不是设置可见性,其中FadeOut比FadeIn动画慢,所以我使用了DataTrigger的EnterActions和ExitAction:
<DataTrigger Binding="{Binding Confidence}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
问题是,有时UIElement保持半透明且没有动画正在运行
置信属性实时变化,但当UIElement是半透明时,该值始终高于0。
我也试过停止故事板,但是那个havnen没有解决问题。
<Storyboard x:Key="FadeOutStoryboard" Duration="0:0:1">
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" />
</Storyboard>
<Storyboard x:Key="FadeInStoryboard" Duration="0:0:0.2">
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
<DataTrigger Binding="{Binding Confidence}" Value="0">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource FadeOutStoryboard}" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource FadeInStoryboard}" />
</DataTrigger.ExitActions>
</DataTrigger>
答案 0 :(得分:2)
我需要明确地设置动画的持续时间而不仅仅是在故事板上:
似乎动画不会从故事板继承持续时间,并且默认持续时间为1秒。
当在故事板上设置持续时间且其小于动画时,动画将被剪裁。
答案 1 :(得分:0)
持续时间中出现十进制值问题。您可以从各种缓动功能中进行选择,以在相同的持续时间内模拟更快的动画效果,如下所示 MSDN reference for Easing Modes.
<Storyboard x:Key="FadeInStoryboard" Duration="0:0:1">
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1">
<DoubleAnimation.EasingFunction>
<BackEase Amplitude='1' EasingMode='EaseIn' />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>