Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)

原文: Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)

  Silverlight中的倾斜变化动画(SkewTransform)能够实现对象元素的水平、垂直方向的倾斜变化动画效果。我们现实生活中的倾斜变化效果是非常常见的,比如翻书的纸张效果,关门开门的时候门缝图形倾斜变换。在Silverlight中实现一个倾斜变化的动画效果是非常简单的,如果利用Blend这种强大的设计工具来实现那更是锦上添花。

 

   倾斜效果的动画应用效果其实非常好看,使用倾斜变换需要注意的有两点:倾斜方向倾斜中心点。可以以某点为倾斜中心点进行X或Y坐标方向进行倾斜,如下以默认中心店进行的各种不同程度倾斜的简单示例:

< Grid  x:Name ="LayoutRoot"  Background ="White"  Margin ="20" >
    
< Grid.ColumnDefinitions >
        
< ColumnDefinition ></ ColumnDefinition >
        
< ColumnDefinition ></ ColumnDefinition >
    
</ Grid.ColumnDefinitions >
    
< Grid.RowDefinitions >
        
< RowDefinition ></ RowDefinition >
        
< RowDefinition ></ RowDefinition >
    
</ Grid.RowDefinitions >
    
< Image  Source ="11.jpg"  Grid.Row ="0"  Grid.Column ="0" />
    
< Image  Source ="11.jpg"  Grid.Row ="0"  Grid.Column ="1" >
        
< Image.RenderTransform >
            
< SkewTransform  AngleX ="20"  AngleY ="0" ></ SkewTransform >
        
</ Image.RenderTransform >
    
</ Image >
    
< Image  Source ="11.jpg"  Grid.Row ="1"  Grid.Column ="0" >
        
< Image.RenderTransform >
            
< SkewTransform  AngleX ="0"  AngleY ="-5" ></ SkewTransform >
        
</ Image.RenderTransform >
    
</ Image >
    
< Image  Source ="11.jpg"  Grid.Row ="1"  Grid.Column ="1" >
        
< Image.RenderTransform >
            
< SkewTransform  AngleX ="20"  AngleY ="15" ></ SkewTransform >
        
</ Image.RenderTransform >
    
</ Image >
</ Grid >

         

  如果使用Blend来设计倾斜效果的变换动画就非常简单了,只需要在属性面板里设置相关的实现就可以完成整个倾斜变换动画的设计,如下绘制了一扇门并为其设置开门的效果,开门的时候门缝间的呈现效果就是以倾斜变换的效果实现的:

         

 

  查看XAML文件可以发现,Blend生成了如下代码,用于实现开门的效果,需要注意的是这里应用到了倾斜中心点,们是朝一个方向(X)开关,其呈现的倾斜效果就是Y坐标方向的倾斜变换。如上图所示,设置了Y坐标方向倾斜-17,既形成门向水平下方向倾斜效果。

 

< Storyboard  x:Name ="Storyboard1" >
    
< PointAnimationUsingKeyFrames  BeginTime ="00:00:00"  
        Storyboard.TargetName
="door"  Storyboard.TargetProperty ="(UIElement.RenderTransformOrigin)" >
        
< EasingPointKeyFrame  KeyTime ="00:00:00"  Value ="1,0.5" />
        
< EasingPointKeyFrame  KeyTime ="00:00:03"  Value ="1,0.5" />
    
</ PointAnimationUsingKeyFrames >
    
< DoubleAnimationUsingKeyFrames  BeginTime ="00:00:00"  Storyboard.TargetName ="door"  
        Storyboard.TargetProperty
="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleY)" >
        
< EasingDoubleKeyFrame  KeyTime ="00:00:03"  Value ="-17" />
    
</ DoubleAnimationUsingKeyFrames >
</ Storyboard >

 

    

 

推荐资源:

  MSDN:http://msdn.microsoft.com/zh-cn/library/cc189090(VS.95).aspx

  MSDN:http://msdn.microsoft.com/zh-cn/system.windows.media.skewtransform(de-de).aspx

  Silverlight & Blend动画设计系列一:偏移动画(TranslateTransform)

  Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)

  Silverlight & Blend动画设计系列三:缩放动画(ScaleTransform)

   《Function Silverlight 3 Animation》----本篇中使用的示例素材选自此书

 

版权说明

  本文属原创文章,欢迎转载且注明文章出处,其版权归作者和博客园共有。  

  作      者:Beniao

 文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

posted on 2018-10-21 13:33 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9824750.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值