博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

动画

Posted on 2012-12-05 13:19  Honor  阅读(151)  评论(0)    收藏  举报

ColorAnimation - 在两个 Color 值之间做线性内插动画处理

DoubleAnimation - 在两个 Double 值之间做线性内插动画处理

PointAnimation - 在两个 Point 值之间做线性内插动画处理

内插关键帧动画 - 在 Color 或 Double 或 Point 动画中内插关键帧,以做线性, 离散, 三次贝塞尔曲线的动画处理

 

DoubleAnimation属性

Storyboard.TargetName - 要进行动画处理的对象的名称
Storyboard.TargetProperty - 要进行动画处理的对象的属性
BeginTime - 时间线在被触发 BeginTime 的时间后才能开始播放
TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数](可为正;可为负;可为空;默认值为 0)
From - 动画的起始值
To - 动画的结束值
By - 动画从起始值开始计算,所需变化的总量(To 优先于 By)
Duration - 时间线的持续时间
TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
Automatic - 自动确定
Forever - 无限长
AutoReverse - 动画完成后是否要原路返回。默认值为 false
RepeatBehavior - 动画重复播放的时间、次数或类型
TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
nx - 播放次数。1x, 2x, 3x
Forever - 永久播放
SpeedRatio - 时间线的速率的倍数。默认值 1
FillBehavior - 动画结束后的行为 [System.Windows.Media.Animation.FillBehavior枚举]
FillBehavior.HoldEnd - 动画结束后,保留动画属性的结束值。默认值
FillBehavior.Stop - 动画结束后,恢复动画属性为其初始值

 

[转载]Silverlight之DoubleAnimation动画

做了一个小Demo,当点击开始时,上面的红色方框会慢慢的消息。一直重复。四个按钮可以控制

xaml代码:

 

        <Grid Name="grid1" Margin="6,8,263,272">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="75*" />
                <ColumnDefinition Width="75*" />
                <ColumnDefinition Width="75*" />
                <ColumnDefinition Width="146*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="31*" />
                <RowDefinition Height="169*" />
            </Grid.RowDefinitions>
            <StackPanel Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="4">
                <StackPanel.Resources>
                    <Storyboard x:Name="Storyboard1">
                        <DoubleAnimation  Storyboard.TargetProperty="Opacity"  Storyboard.TargetName="rectangle1" From="1.0" To="0.0" RepeatBehavior="Forever" Duration="0:0:5">
                        </DoubleAnimation>
                    </Storyboard>
                </StackPanel.Resources>
                <Rectangle Fill="Red" Height="100" HorizontalAlignment="Left" Margin="68,44,0,0" Name="rectangle1" Stroke="#FFEB0000" StrokeThickness="1" VerticalAlignment="Top" Width="200">

                </Rectangle>
            </StackPanel>
            <Button Content="开始" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
            <Button Content="暂停" Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
            <Button Content="继续" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Name="button3" VerticalAlignment="Top" Width="75" Click="button3_Click" />
            <Button Content="停止" Grid.Row="0" Grid.Column="3" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Name="button4" VerticalAlignment="Top" Width="75" Click="button4_Click" />

        </Grid>

 

 

 

CS代码:

 

        private void button1_Click(object sender, RoutedEventArgs e)
        {//动画开始
            Storyboard1.Begin();
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {//暂停
            Storyboard1.Pause();
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {//继续
            Storyboard1.Resume();
        }

        private void button4_Click(object sender, RoutedEventArgs e)
        {//停止
            Storyboard1.Stop();
        }