• 38、animation


    1、Animations overview :

    动画是通过计算开始和结束的值,在给定的时间内周期修改属性的值。这些值可以包括各种

    各样的类型,包括 Color、Double、Point、等等,取决于将要操作的属性。

    这个示例是在3秒内把 Canvas.Left 从 0 增长到 300,并且动画被设置为循环。

     <Grid.Resources>
                    <Storyboard x:Name="Scenario1Storyboard">                   
                        <DoubleAnimation
                                Storyboard.TargetName="Scenario1Rectangle"
                                Storyboard.TargetProperty="(Canvas.Left)"
                                Duration="0:0:3"
                                To="300"
                                RepeatBehavior="Forever"/>
                    </Storyboard>
    </Grid.Resources>
     <Canvas Width="400" Height="100">
                    <Rectangle Name="Scenario1Rectangle" Width="100" Height="100" Fill="Indigo" />
     </Canvas>

    2、Types of animations :

        不同类型的动画使用不同类型的值,并且使用不同的方式计算中间值。

        下面示例中的第一个方块使用 ColorAnimation 和 DoubleAnimation 计算 Color 和 Double 类型的值,从而

    使用默认的线性插值来在开始值和结束值之间创建一个平滑动画。

          下面第二个方块使用 keyframes 代替 ColorAnimation 和 DoubleAnimation。关键帧在特定的时间内显示特定的中间值,也可显示如何计算这些时间之间的值。

      <Grid x:Name="Output" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1">
                <Grid.Resources>
                    <Storyboard x:Name="Scenario2ContinuousStoryboard">
                        <!-- //这个动画在3秒内使下面的第一个方块填充绿色的颜色 。注意到 为了使动画运行,
    // EnableDependentAnimation 标识必须设置为 true ,因为 填充颜色动画不能独立操作
    --> <ColorAnimation EnableDependentAnimation="true" Storyboard.TargetName="Scenario2ContinuousRectangle" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" Duration="0:0:3" To="Green" /> <DoubleAnimation Storyboard.TargetName="Scenario2ContinuousRectangle" Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:3" To="300" /> </Storyboard> <Storyboard x:Name="Scenario2KeyFrameStoryboard">
    <!-- //使用关键帧动画控制插值方法 .注意到 为了使 //动画运行, EnableDependentAnimation 标识必须设置为 true , //因为 填充颜色动画不能独立操作 --> <ColorAnimationUsingKeyFrames EnableDependentAnimation="true" Storyboard.TargetName="Scenario2KeyFrameRectangle" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" Duration="0:0:3" > <DiscreteColorKeyFrame KeyTime="0:0:0.5" Value="Red" /> <DiscreteColorKeyFrame KeyTime="0:0:1" Value="Orange" /> <DiscreteColorKeyFrame KeyTime="0:0:2" Value="Blue" /> <EasingColorKeyFrame KeyTime="0:0:3" Value="Green" /> </ColorAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Scenario2KeyFrameRectangle" Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:3" >
    <!--//前三段动画为离散改变值--> <DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="50" /> <DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="100" /> <DiscreteDoubleKeyFrame KeyTime="0:0:2" Value="200" /> <!--//最后一段为平滑改变值--> <EasingDoubleKeyFrame KeyTime="0:0:3" Value="300" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </Grid.Resources> <StackPanel> <Canvas Width="400" Height="100"> <Rectangle Name="Scenario2ContinuousRectangle" Width="100" Height="100" Fill="Indigo" /> </Canvas> <Canvas Width="400" Height="100" Margin="0,20,0,0"> <Rectangle Name="Scenario2KeyFrameRectangle" Width="100" Height="100" Fill="Indigo" /> </Canvas> </StackPanel> </Grid>
  • 相关阅读:
    VSCode Web Developement for Javascript. Must have plugins.
    Docker explainations
    如何在启用SharePoint浏览器功能的InfoPath 表单中添加托管代码以动态地加载并显示图片
    解决方案:带格式化文本控件( RichText)的模板如果在InfoPath的浏览器中加载可能出现 COM 组件的80040154错误
    springboot之本地缓存(guava与caffeine)
    java基础之泛型对象与json互转
    nginx动静分离
    网关鉴权后下游统一filter获取用户信息
    网关高可用之keepavlived全流程(安装/配置/验证/解析)
    微服务时代之网关及注册中心高可用架构设计
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/2724701.html
Copyright © 2020-2023  润新知