WPF体验(5)

 

动画

WPF可以在代码中编写动画的行为,也可以在XAML中编写,我们这里只介绍XAML中的动画效果。在XAML中动画是通过叫做故事版的元属来描述,你可以设置界面元素的属性变化来产生动画的效果,这些属性可以是颜色、透明度、位置、大小尺寸等。动画的类型有ColorAnimationDoubleAnimationPointAnimation等。它们通过一个TimeLine的对象来实现动画效果,下面是一个DoubleAnimation的动画描述:

 

<DoubleAnimation From="1.0" To="0.0"

     TargetProperty="(Rectangle.Opacity)"
     Duration="0:0:1"

     />

 

DoubleAnimation动画,表示属性的状态在两个值之间变化,通过指定FromTo等属性。上面的代码定义了对一个矩形对象的透明度实现动画效果,透明度的值从1变化到0, Duration属性设置完成动画的时间跨度,这里设置为1秒。前面提到,动画的描述必须放置在故事板中:

当一个矩形的透明度从1变到0,那么这个矩形就看不见了,如果我们需要恢复到原来的透明度,只要把透明度恢复到1,通过设置AutoReverseTrue就可以达到目的,如果我们要一直不停的重复动画效果,可以设置RepeatBehaviorForever,代码如下:

<Storyboard>

<DoubleAnimation From="1.0" To="0.0"

    TargetProperty="(Rectangle.Opacity)"

    Duration="0:0:1"

    AutoReverse="True" RepeatBehavior="Forever"/>

</Storyboard>

动画的触发是通过一个称作触发器的元属,触发器通常由事件来触发:

动画的触发是通过一个称作触发器的元属,触发器通常由事件来触发:

<EventTrigger RoutedEvent="Rectangle.Loaded">

<BeginStoryboard>

<Storyboard>

<Storyboard>

<DoubleAnimation Storyboard.TargetName="MyRectangle"

Storyboard.TargetProperty="(Rectangle.Opacity)"

From="1.0" To="0.0" Duration="0:0:1"

AutoReverse="True" RepeatBehavior="Forever" />

</Storyboard>

</BeginStoryboard>

</EventTrigger>

上面代码描述了完整的一个动画过程,注意到动画的触发事件设置为Rectangle.Loaded事件。最后我们还观看一下动画的效果:

上面代码描述了完整的一个动画过程,注意到动画的触发事件设置为 Rectangle.Loaded 事件。最后我们还观看一下动画的效果:

用下面的代码替换上一次例子的Viewport3D元属:

 

<DockPanel Margin="10">

<Rectangle Name="MyRectangle" Width="100" Height="100" Fill="Blue">

<Rectangle.Triggers>

<EventTrigger RoutedEvent="Rectangle.Loaded">

<EventTrigger RoutedEvent="Rectangle.Loaded">

<BeginStoryboard>

<Storyboard>

<DoubleAnimation Storyboard.TargetName="MyRectangle"

Storyboard.TargetProperty="(Rectangle.Opacity)"

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值