几个月前,在这个论坛上,我已经了解了Storyboard,并且我在应用程序上一直非常重视它。现在,我打了另一个路障,希望你能帮助我。
当订单状态发生变化时,我需要在ItemsControl或ListView中进行闪烁动画。如果我需要将动画更改为闪烁,它可以正常工作。问题是如何阻止它。
这是我的代码:
<Viewbox>
<i:Interaction.Behaviors>
<ic:DataTriggerBehavior Binding="{Binding OrderStatus, Mode=OneWay, Converter={StaticResource EnumConverter}}" ComparisonCondition="Equal" Value="Cancelled">
<im:ControlStoryboardAction ControlStoryboardOption="Play">
<im:ControlStoryboardAction.Storyboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(FrameworkElement.Opacity)"
Storyboard.TargetName="lblOrderStatus"
From="1" To="0" AutoReverse="True" BeginTime="0:0:0.5" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</im:ControlStoryboardAction.Storyboard>
</im:ControlStoryboardAction>
</ic:DataTriggerBehavior>
<ic:DataTriggerBehavior Binding="{Binding OrderStatus, Mode=OneWay, Converter={StaticResource EnumConverter}}" ComparisonCondition="NotEqual" Value="Cancelled">
<im:ControlStoryboardAction ControlStoryboardOption="Stop">
<im:ControlStoryboardAction.Storyboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(FrameworkElement.Opacity)"
Storyboard.TargetName="lblOrderStatus"
From="1" To="0" AutoReverse="True" BeginTime="0:0:0.5" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</im:ControlStoryboardAction.Storyboard>
</im:ControlStoryboardAction>
</ic:DataTriggerBehavior>
</i:Interaction.Behaviors>
<TextBlock x:Name="lblOrderStatus" Text="{Binding OrderStatus, Mode=OneWay}"></TextBlock>
</Viewbox>
如您所见,我有两个触发器。当OrderStatus更改为已取消时,它将运行动画。但是当OrderStatus更改为 Acknowledge 或其他任何内容时,动画仍在运行。 这是因为它实际上是2个单独的故事板。
我尝试使用 StaticResource ,但它只会更改第一行。
<Viewbox>
<Viewbox.Resources>
<Storyboard x:Name="sbBlinking">
<DoubleAnimation Storyboard.TargetProperty="(FrameworkElement.Opacity)"
Storyboard.TargetName="lblOrderStatus"
From="1" To="0" AutoReverse="True" BeginTime="0:0:0.5" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</Viewbox.Resources>
<i:Interaction.Behaviors>
<ic:DataTriggerBehavior Binding="{Binding OrderStatus, Mode=OneWay, Converter={StaticResource EnumConverter}}" ComparisonCondition="Equal" Value="Cancelled">
<im:ControlStoryboardAction Storyboard="{StaticResource sbBlinking}" ControlStoryboardOption="Play" />
</ic:DataTriggerBehavior>
<ic:DataTriggerBehavior Binding="{Binding OrderStatus, Mode=OneWay, Converter={StaticResource EnumConverter}}" ComparisonCondition="NotEqual" Value="Cancelled">
<im:ControlStoryboardAction Storyboard="{StaticResource sbBlinking}" ControlStoryboardOption="Stop" />
</ic:DataTriggerBehavior>
</i:Interaction.Behaviors>
<TextBlock x:Name="lblOrderStatus" Text="{Binding OrderStatus, Mode=OneWay}"></TextBlock>
</Viewbox>
关于如何解决这个问题的任何想法?再次感谢...