1. 程式人生 > >WPF背景顏色變化的動畫

WPF背景顏色變化的動畫

//想做一個背景顏色變化的動畫,開始想用透明因子Opacity來實現,後來發現可以改變漸變線性刷LinearGradienBrush的Offset來實現
//就是在設定Storyboard.TargetProperty的時候比較繞
//例項:

<Color x:Key="WhiteColor">#FFFFFFFF</Color>
<Color x:Key="NormalColor">#FF398FDF</Color>
<LinearGradientBrush x:Key="LGBrush" StartPoint="0,0.5" EndPoint="1,0.5">
	<GradientStop Color="{StaticResource NormalColor}" Offset="0"/>
	<GradientStop Color="{StaticResource WhiteColor}" Offset="0.5"/>
	<GradientStop Color="{StaticResource NormalColor}" Offset="1"/>
</LinearGradientBrush>
<Grid>
  <Grid.Triggers>
    <EventTrigger RoutedEvent="Loaded">
	<BeginStoryboard>
			<Storyboard>
 				<DoubleAnimation Storyboard.TargetName="border" 
					Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Offset)"
					BeginTime="00:00:00" Duration="00:00:10" From="0" To="1" AutoReverse="True" RepeatBehavior="Forever"/>
			</Storyboard>
		</BeginStoryboard>
        </EventTrigger>
    </Grid.Triggers>
    <Border x:Name="border" Background={StaticResource LGBrush} CornerRadius="2"/>
</Grid>