XAML动画

本文介绍了XAML动画,包括线性插值动画和关键帧动画。重点讲述了如何使用故事板和事件触发器来实现动画效果。通过示例展示了如何在XAML中设置From、To属性,Duration以及如何通过事件触发器启动动画,最后呈现了动画运行的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:孙英鹏   撰写时间:2019年6月24日

关于动画大家并不陌生,但对于代码XAML动画来讲可能就陌生了,今天就来给大家讲一下什么是XAML动画。

关于动画实际上有两种类型:
第一种:是在开始值和结束值之间以逐步增加的方式改变属性 的动画(线性插值过程)
第二种:是从一个值突然变成另一值的动画(关键帧动画)。所有关键帧动画都使用“类型名 + AnimationUsingKeyFrames” 的形式进行命名,比如StringAnimationUsingKey Frames和ObjectAnimationUsingKeyFrames。

动画是一种简单的“渐变”动画,我们为一个动画指定开始值和一个结束值,并指定由开始值到达结束值所需的时间,便可形成一个简单的动画。实现动画需要故事板和事件触发器。

故事板:Storyboard(故事板)是动画的基本单元,是控制动画的播放和暂停等操作。

事件触发器:是通过事件触发器播放BeginStoryboard故事板的动画效果。

关于它们的XAML代码如下:

 <Window x:Class="动画.dome1"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markupcompatibility/2006"
 xmlns:local="clr-namespace:动画"
 mc:Ignorable="d" Title="dome1" Height="300" Width="300">
 <Window.Resources>
<!--故事板-->
<Storyboard x:Key="my" x:Name="storyboard1">
<ColorAnimation Storyboard.TargetName="ellipse1"
Storyboard.TargetProperty="(Ellipse.Fill).(SolidColorBrush.Color)"
From="White" To="PeachPuff" Duration="0:0:2">
</ColorAnimation>
</Storyboard>
</Window.Resources>
<!--窗口触发器-->
    <Window.Triggers>
        <!--事件触发器-->
        <EventTrigger RoutedEvent="Window.Loaded">
            <!--执行事件-->
            <EventTrigger.Actions>
                <!--开始动画-->
                <BeginStoryboard Storyboard="{StaticResource my}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </Window.Triggers>
<Canvas>
     <Ellipse x:Name="ellipse1" Width="200" Height="200" Fill="White"
Canvas.Left="51" Canvas.Top="35" Stroke="Pink" StrokeThickness="5"/>
    </Canvas>
</Window>

首先创建一个窗口,先写故事板,在故事板里写上From(动画从From属性指定的值继续到正在进行动画处理的属性的基值或前一动画的输出值,具体取决与前一动画的配置方式)、 To(动画的输出值继续到To属性指定的值)、 Duration(动画执行的时间长度)。写好了故事板,接下来就是窗口触发器,首先写事件触发器,然后在执行事件并开始动画,写好了触发器,就开始写动画的形状,我这里的动画形状是一个圆形,然后再给里面添加颜色,就行了(自己喜欢什么就加什么),接下来就是运行一下动画的效果。

效果:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值