wpf动画类型
1<类型>Animation这些动画称为from/to/by动画或者叫基本动画,他们会在起始值或者结束值进行动画处理,常用的例如
<DoubleAnimation>
2 <类型>AnimationUsingKeyFrames: 关键帧动画,功能要比from/to这些动画功能要强大,可以在任意地一个帧添加对应得动画效果甚至可以设置动画过程当中的
运行的速率:eg:doubleAnimationUsingKeyFrames
3 <类型>AnimationUsingPath 路径动画,主要支持使用几何图形来生成路径动画值
4 <类型>AnimationBase 动画基类,是from/to和关键帧动画的基类,实现自定义动画可以实现该类
关键帧动画:
doubleAnimationusingkeyframes // double类型的关键帧动画
ObjectAnimationusingkeyframes // Object类型的关键帧动画
ColorAnimationusingkeyframes // 颜色类型的关键帧动画
StringAnimationusingkeyframes // 字符串类型的关键帧动画
动画的几要素:
1 做动画的标签 RectAnle
2 触发做动画的条件,触发器
3 添加Storyboard
4 添加动画类型 <DoubleAnimationUsingKeyFrames>
5 动画类型标签添加 : 动画元素和动画属性 两个属性
Storyboard.TargetName 确定动画元素
Storyboard.TargetProperty 做动画的属性
动画常用的属性:
AutoReverse="True" 动画是否支持相反方向的动画
RepeatBehavior="Forever" 重复的行为 : forever永远
Storyboard.TargetName 确定动画元素
Storyboard.TargetProperty 做动画的属性
颜色关键帧动画
<Button Width="200" Height="200" Name="btn">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<ColorAnimationUsingKeyFrames AutoReverse="true"
RepeatBehavior="Forever"
Storyboard.TargetName="btn"
Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"
>
<LinearColorKeyFrame KeyTime="0" Value="Red"></LinearColorKeyFrame>
<LinearColorKeyFrame KeyTime="0:0:0.1" Value="Blue"></LinearColorKeyFrame>
<LinearColorKeyFrame KeyTime="0:0:0.2"
Value="Green"></LinearColorKeyFrame>
<LinearColorKeyFrame KeyTime="0:0:0.3"
Value="Yellow"></LinearColorKeyFrame>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
字符串关键帧动画
<Button Width="100" Height="100" Margin="0,300,0,0" Name="btn1">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.KeyDown">
<BeginStoryboard>
<Storyboard>
<!--HoldEnd 保留动画最后一帧的效果,如果值是stop,动画最终效果是恢复到原样-->
<StringAnimationUsingKeyFrames FillBehavior="HoldEnd"
Storyboard.TargetName="btn1"
Storyboard.TargetProperty="(Button.Content)">
<!--离散型关键帧-->
<DiscreteStringKeyFrame KeyTime="0" Value="5s"></DiscreteStringKeyFrame>
<DiscreteStringKeyFrame KeyTime="0:0:1"
Value="4s"></DiscreteStringKeyFrame>
<DiscreteStringKeyFrame KeyTime="0:0:2"
Value="3s"></DiscreteStringKeyFrame>
<DiscreteStringKeyFrame KeyTime="0:0:3"
Value="2s"></DiscreteStringKeyFrame>
<DiscreteStringKeyFrame KeyTime="0:0:4"
Value="1s"></DiscreteStringKeyFrame>
<DiscreteStringKeyFrame KeyTime="0:0:5"
Value="0s"></DiscreteStringKeyFrame>
</StringAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
对象类型的关键帧
<Button Width="100" Height="100" Margin="0,-300,0,0" Name="btn2">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.MouseLeave">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btn2"
Storyboard.TargetProperty="(UIElement.Visibility)"
AutoReverse="True"
RepeatBehavior="Forever">
<DiscreteObjectKeyFrame KeyTime="0:0:0.1" Value="{x:Static Visibility.Hidden}"></DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:0.3"
Value="{x:Static Visibility.Visible}"></DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>