gpt4 book ai didi

wpf - DataTrigger 的 EnterAction/ExitAction 动画冲突

转载 作者:行者123 更新时间:2023-12-02 00:32:08 24 4
gpt4 key购买 nike

最初我有一个 DataTrigger,将可见性设置为折叠:

<DataTrigger Binding="{Binding Confidence}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>

我想要平滑的 FadeOut/FadeIn 动画,而不是设置可见性,其中 FadeOut 比 FadeIn 动画慢,所以我使用了 DataTrigger 的 EnterActions 和 ExitAction:

<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>

问题是,有时 UIElement 保持半透明并且没有动画运行

confidence 属性实时变化,但当 UIElement 半透明时,该值始终高于 0。

我也尝试过停止 Storyboard,但这并没有解决问题。

<DataTrigger Binding="{Binding Confidence}" Value="0">
<DataTrigger.EnterActions>
<StopStoryboard BeginStoryboardName="BeginFadeIn" />
<BeginStoryboard x:Name="BeginFadeout" Storyboard="{StaticResource FadeOutStoryboard}" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="BeginFadeout" />
<BeginStoryboard x:Name="BeginFadeIn" Storyboard="{StaticResource FadeInStoryboard}" />
</DataTrigger.ExitActions>
</DataTrigger>

最佳答案

我需要明确设置动画的持续时间,而不仅仅是在 Storyboard上:

动画似乎没有从 Storyboard继承持续时间,并且有一些默认的持续时间 1 秒。

当在 Storyboard 上设置持续时间并且其小于动画时,动画将被剪辑。

关于wpf - DataTrigger 的 EnterAction/ExitAction 动画冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com