WPF比winform功能强大得多,今天我学习了WPF动画的制作,现在公众号记笔记,以备后查,共勉。
动画不仅可以使引起注意的用户界面更加引人注目,还可以使其更加便于使用,只需对背景色进行动画处理或应用经过动画处理的Transform,即可创造出生动的屏幕过渡效果或提供有帮助的视觉提示。.
WPF可以对对象的个别属性应用动画,可以对对象进行动画处理。如:若要使框架元素增大,请对其Width和Heigh属性进行动画处理。若要使对象逐渐从视野中消失,可以对其Opacity属性进行动画处理。
由于Opacity属性的类型是Double,因此需要一个产生双精度值的动画。DoubleAnimation是这样一个动画。
1:若要指定其起始值,可设置From属性。
2:若要指定其终止值,可设置其To属性。
3:必须设置Duration值,该值为从其始值至终止值所需要的时间。Duration="0:1:5" 为需要1分钟5秒
4:若要使元素在消失后再逐渐回到视野中,请将动画的 AutoReverse 属性设置为 true
。
5:若要使动画无限期重复,请将其 RepeatBehavior 属性设置为 Forever。默认情况下,时间线的迭代次数为 1.0
,即播放一次时间线,根本不进行重复。
不透明度值1.0使对象完全不透明,0.00使对象完全不可见,
下面先见代码:
<Label Name="abc" Content="测试动画,5秒消失" FontSize="60">
<Label.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="abc"
Storyboard.TargetProperty="Opacity"
From="1" To="0" Duration="0:0:5"
AutoReverse="True" RepeatBehavior=" Forever " />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Label.Triggers>
</Label>
一、若要向对象应用动画,请创建 Storyboard 并使用 TargetName 和 TargetProperty 附加属性指定要进行动画处理的对象和属性
二、在 XAML 中应用和启动 Storyboard 的最简单方法是使用事件触发器。创建一个 BeginStoryboard 对象并将情节提要与其关联。 BeginStoryboard 是应用并启动 Storyboard 的一种 TriggerAction 类型。创建 EventTrigger 并将 BeginStoryboard 添加到其 Actions 集合中。将 EventTrigger 的 RoutedEvent 属性设置为要启动 Storyboard 的路由事件。(以上代码是用loaded事件)
不同的属性类型具有不同的动画类型,如果采用Width属性也是可以让对象移动的。代码如下:
<Canvas Name="cba">
<Canvas.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="cba"
Storyboard.TargetProperty="Width"
From="0" To="1000" Duration="0:0:0.5"
AutoReverse="False" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
WPF的动画命名空间存在System.Windows.Media.Animation 下面.它们都遵循严格的命名约定,因此可以轻松地区分它们:
-
< 类型>Animation
这些动画称为“From/To/By”或“基本”动画,它们在起始值和目标值之间进行动画处理,或者通过将偏移量值与其起始值相加来进行动画处理。
此概述中的示例使用这些动画,因为这些动画使用起来最简单。From/To/By 动画概述中详细描述了“From/To/By”动画。
-
若要指定起始值,请设置动画的“From”属性。
-
若要指定终止值,请设置动画的“To”属性。
-
若要指定偏移量值,请设置动画的“By”属性。
-
-
< 类型>AnimationUsingKeyFrames
关键帧动画的功能比“From/To/By”动画的功能更强大,因为可以指定任意多个目标值,甚至可以控制它们的插值方法。某些类型只能用关键帧动画进行动画处理。 关键帧动画概述中详细描述了关键帧动画。
-
< 类型>AnimationUsingPath
路径动画支持使用几何路径来生成动画值。
-
< 类型>AnimationBase
在实现时对 <类型> 值进行动画处理的抽象类。此类用作 <类型>Animation 和 <类型>AnimationUsingKeyFrames 类的基类。只有在想要创建自己的自定义动画时,才需要直接处理这些类。否则,请使用 <类型>Animation 或 KeyFrame<类型>Animation。
在大多数情况下,将要使用 <类型>Animation 类, 如 DoubleAnimation 和 ColorAnimation。
下表显示了一些常用动画类型以及一些与这些类型一起使用的属性。
WPF很强大,活到老,学到老。