我需要颜色按顺序变化。让我们说从灰色到红色,然后从红色到绿色......等等。
到目前为止,我得到了这个:
<UserControl.Resources>
<Style x:Key="BlinkingStyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding AnimationMode}" Value="BlinkingOn">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="Lime" AutoReverse="True" RepeatBehavior="Forever" Duration="0:0:5" />
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" From="Lime" To="Red" AutoReverse="True" RepeatBehavior="Forever" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Name="StopFlashingStoryboard">
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="LightGray" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<Border BorderBrush="Black" BorderThickness="1">
<Button Command="{Binding ItemSelectedCommand}" CommandParameter="{Binding}" Style="{StaticResource BlinkingStyle}">
</Button>
</Border>
</Grid>
颜色行为似乎是并行的。颜色在运行时混合在一起。我需要的颜色改变到Lime
超过5秒,然后从Lime
到Red
超过未来5秒,然后到LightGray
为2秒。
1条答案
按热度按时间jexiocij1#
我需要的颜色改变为石灰超过5秒,然后从石灰红色超过未来5秒,然后到浅灰色2秒。
你可以像这样使用
ColorAnimationUsingKeyFrames
: