[索引页]
[源码下载]


稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)


作者:webabcd


介绍
Silverlight 3.0 动画的缓动效果:
  • Easing 可以与 Storyboard 结合实现动画的缓动效果
  • Silverlight 3 内置 11 种缓动效果:分别为BackEase, BounceEase, CircleEase, CubicEase, ElasticEase, ExponentialEase, PowerEase, QuadraticEase, QuarticEase, QuinticEase, SineEase
  • 各个缓动类都继承自 EasingFunctionBase,除了 EasingFunctionBase 提供的功能外,各个缓动类可能还会有各自的属性(懒的写了,查文档吧) 
  • EasingFunctionBase 有一个用于设置缓动模式的枚举类型属性 EasingMode (EasingMode.EaseOut(默认值), EasingMode.EaseIn, EasingMode.EaseInOut)


在线DEMO
http://www.cnblogs.com/webabcd/archive/2009/08/04/1538238.html


示例
1、Silverlight 3.0 内置的 11 种缓动效果的 Demo
Easing.xaml
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)<navigation:Page x:Class="Silverlight30.Animation.Easing" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           mc:Ignorable
="d"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:navigation
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           d:DesignWidth
="640" d:DesignHeight="480"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           Title
="Easing Page">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)    
<Grid x:Name="LayoutRoot">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)        
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<!--用于显示各种 Easing 的图例列表-->
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<StackPanel Margin="10">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<ListBox x:Name="lstEasing">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ListBox.ItemTemplate>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
<DataTemplate>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<StackPanel Margin="1">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                                
<TextBlock Text="{Binding EasingName}" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                                
<Image Source="{Binding PicAddress}" Width="300" Height="50" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
</StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
</DataTemplate>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
</ListBox.ItemTemplate>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</ListBox>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
</StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<StackPanel Margin="10, 200">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<!--分别用 3 种动画来演示各类 Easing-->
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<ComboBox x:Name="cboTransform" Margin="5">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="Translate" IsSelected="True" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="Rotate" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="Scale" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</ComboBox>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<!--用各种 EasingMode 分别做演示-->
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<ComboBox x:Name="cboEasingMode" Margin="5">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="EaseOut" IsSelected="True" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="EaseIn" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<ComboBoxItem Content="EaseInOut" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</ComboBox>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<Button x:Name="btnShow" Content="演示" Click="btnShow_Click" Margin="5" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<!--用于做动画演示的矩形-->
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<Rectangle.RenderTransform>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
<TransformGroup>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<TranslateTransform x:Name="tt" X="0" Y="0" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<RotateTransform x:Name="rt" Angle="0" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<ScaleTransform x:Name="st" ScaleX="1" ScaleY="1" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
</TransformGroup>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
</Rectangle.RenderTransform>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</Rectangle>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
</StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)        
</StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)    
</Grid>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
</navigation:Page>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)

Easing.xaml.cs


2、自定义缓动效果的 Demo
MyCustomEasing.cs
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)using System;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Net;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Controls;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Documents;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Ink;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Input;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Media;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Media.Animation;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Shapes;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
namespace Silverlight30.Animation

CustomEasing.xaml
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)<navigation:Page x:Class="Silverlight30.Animation.CustomEasing" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           mc:Ignorable
="d"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:custom
="clr-namespace:Silverlight30.Animation"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           xmlns:navigation
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           d:DesignWidth
="640" d:DesignHeight="480"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)           Title
="CustomEasing Page">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)    
<Grid x:Name="LayoutRoot">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)        
<StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)        
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<StackPanel.Resources>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<Storyboard x:Name="ani">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<DoubleAnimation 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
Storyboard.TargetName="tt"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        Storyboard.TargetProperty
="Y"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        From
="0" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        To
="200" 
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        Duration
="00:00:03"
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
<DoubleAnimation.EasingFunction>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<!--使用自定义的缓动效果-->
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                            
<custom:MyCustomEasing EasingMode="EaseOut" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
</DoubleAnimation.EasingFunction>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
</DoubleAnimation>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</Storyboard>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
</StackPanel.Resources>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<Button x:Name="btnShow" Content="演示" Margin="5" Click="btnShow_Click" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
<Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5">
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
<Rectangle.RenderTransform>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
<TransformGroup>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                        
<TranslateTransform x:Name="tt" X="0" Y="0" />
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                    
</TransformGroup>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)                
</Rectangle.RenderTransform>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
</Rectangle>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)            
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)        
</StackPanel>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)    
</Grid>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
</navigation:Page>
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)

CustomEasing.xaml.cs
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)using System;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Collections.Generic;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Linq;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Net;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Controls;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Documents;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Input;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Media;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Media.Animation;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Shapes;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
using System.Windows.Navigation;
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
稳扎稳打Silverlight(37) - 3.0动画之Easing(缓动效果)
namespace Silverlight30.Animation


OK
[源码下载]

相关文章:

  • 2022-01-06
  • 2021-05-15
  • 2021-10-31
  • 2021-10-19
  • 2022-02-20
  • 2022-02-13
  • 2021-08-23
  • 2021-07-15
猜你喜欢
  • 2021-11-06
  • 2021-06-25
  • 2021-05-17
  • 2021-10-19
  • 2022-01-18
  • 2021-08-24
  • 2022-12-23
相关资源
相似解决方案