gpt4 book ai didi

c# - 动画不表现自己

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:16 25 4
gpt4 key购买 nike

我有一个 StatusBar TextBlock 项。这显示正在进行的过程和状态/信息消息。如果消息不是“就绪”,我希望文本随着时间的推移逐渐消失,消失时留下“就绪”。

我目前正在对此进行测试,并为 TextBlock 使用了以下 XAML。

<StatusBarItem DockPanel.Dock="Left" Margin="0,2,0,0">
<TextBlock Text="{Binding StatusMessage}"
Margin="5,0,0,0"
Foreground="White">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding SystemIsReady,
NotifyOnSourceUpdated=True,
Mode=TwoWay}"
Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="1.0"
To="0.5"
Duration="0:0:1.5"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding SystemIsReady,
NotifyOnSourceUpdated=True,
Mode=TwoWay}"
Value="True">
<Setter Property="Opacity" Value="1.0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StatusBarItem>

测试方法更改文本并更新 IsSytemReady(如果状态等于“Ready”)。绑定(bind)正在运行,但在显示应用程序之前似乎已经触发了淡入淡出到 0.5 不透明度的动画,并且将此不透明度设置回 1 的触发器也不起作用。

为什么动画/触发器没有重新触发?

感谢您的宝贵时间。

最佳答案

动画没有重新触发,因为 Timeline 仍在运行,您必须停止 Storyboard 才能重置值。

您可以为此使用 StopStoryboard,只需命名 Storyboard,然后在 EnterActions 中调用 StopStoryboardDataTrigger

例子:

<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding SystemIsReady, Mode=TwoWay, NotifyOnSourceUpdated=True}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Name="FadeOut">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.5" Duration="0:0:1.5"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding SystemIsReady, Mode=TwoWay, NotifyOnSourceUpdated=True}" Value="True">
<Setter Property="Opacity" Value="1.0"/>
<DataTrigger.EnterActions>
<StopStoryboard BeginStoryboardName="FadeOut" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>

关于c# - 动画不表现自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18302088/

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