开发工具与关键技术:Visual Studio + WPF 撰写时间:2019年5月22日
1、 动画是WPF中的一个亮点,现在跟大家分享一个好看的动画——动态改变画刷,在这个Ellipse圆形动画中使用ColorAnimation属性标签改变颜色,使用PointAnimatin属性标签改变横纵坐标。
<Window x:Class="Wpf2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="动态改变画刷" Height="350" Width="525"> <Window.Triggers> <!--BeginStoryboard:要在EventTrigger中触发调用,RoutedEvent是响应的事件--> <EventTrigger RoutedEvent="Window.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <!--PointAnimation属性:使用线性内插对两个目标值之间的 System.Windows.Point属性值进行动画处理。设置Fill.GradientOrigin属性: 获取或设置定义渐变开始的二维焦点的位置。--> <PointAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientOrigin" From="1,1" To="0,0" Duration="0:0:10" /> <!--ColorAnimation属性:使用线性内插对两个目标值之间的 System.Windows.Media.Color属性值进行动画处理。设置Fill.GradientStops[0].Color属性:获取或设置渐变停止点的颜色。--> <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[0].Color" To="Pink" Duration="0:0:5"/> <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[1].Color" To="Gold" Duration="0:0:5" /> <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[2].Color" To="Gray" Duration="0:0:5" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Window.Triggers> <!--Grid:网格布局--> <Grid> <Ellipse Name="ellipse1" Width="200" Height="200"> <Ellipse.Fill> <RadialGradientBrush GradientOrigin="0.1,0.1"> <RadialGradientBrush.GradientStops> <GradientStop Offset="0.17" Color="Red" /> <GradientStop Offset="0.25" Color="Green" /> <GradientStop Offset="0.5" Color="Yellow" /> <GradientStop Offset="0.65" Color="Red" /> <GradientStop Offset="0.7" Color="Green" /> <GradientStop Offset="0.82" Color="Yellow" /> </RadialGradientBrush.GradientStops> </RadialGradientBrush> </Ellipse.Fill> </Ellipse> </Grid> </Window>2、效果图: