.NEt专家博客!
一步一步学Silverlight 2系列(30):使用Transform实现更炫的效果(下)
上一篇 /
下一篇 2008-04-11 21:42:32
/ 个人分类:经典文章
概述
Silverlight 2 Beta
1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#,
IronRuby, Ironpython,对JSON、Web
Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight
2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。
本文为使用
Transform实现更炫的效果第二部分,在Silverlight中提供了四种基本变换:旋转变换(RotateTransform.
)、缩放变换(ScaleTransform)、倾斜变换(SkewTransform)、移动变换(TranslateTransform)和两种复杂
的变换:变换组(TransformGroup)、矩阵变换(MatrixTransform. ),这些变换可以运用到任何控件或者图形图像。
矩阵变换(MatrixTransform. )
矩阵变换MatrixTransform是所有变换中功能最强大最灵活也是最复杂的一种变换,如果前面讲解的几种基本变化不能满足我们在实际开发中的需求,可以使用矩阵变换进行自定义,它允许我们直接对变换矩阵进行操作。
在Silverlight中,变换是提供一个3*3的矩阵,我们通过修改矩阵中成员的值来实现变换,矩阵的定义如下所示:
/]#p(gMk P}~,]!X1Q0
-E
Rx[6s"K3SK0
如修改OffsetX,元素将会在X轴上进行移动;修改OffsetY,元素将在Y轴上移动;修改M22为2,元素的高度将会拉伸2倍,通过该矩
阵,我们能实现前面提到的几种基本变换的所有功能。更详细的解释大家可以参考SDK。如下面的例子,我们使用矩阵变换,仍然能实现前面示例中的变换效果:
<CanvasBackground="#CDFCAE">ITPUB个人空间$Y.v'D/^V9b"Y_
<ImageSource="a1.png"Canvas.Left="120"Canvas.Top="50"Opacity="0.3">
k-V7c$UWV@f4a0</Image>ITPUB个人空间W)FB,XpaE3[8N
<ImageSource="a1.png"Canvas.Left="120"Canvas.Top="50"Opacity="0.5">
`%Q-q4g`"ynC0<Image.RenderTransform>
;^:GFP4QrH3c0<MatrixTransform>
7I*z_4|[0<MatrixTransform.Matrix>
;w1p1r
bz-ej~)U0<MatrixOffsetX="0"OffsetY="0"M12="0.2"></Matrix>
.]%Uk9yvFlI+Sp0</MatrixTransform.Matrix>
x;jI2f8V%e
c ~:k0</MatrixTransform>
kM)k!@@*K_hW|0</Image.RenderTransform>
)f$_;M3R0Uj.{L#]0</Image>ITPUB个人空间&V2Qv'N3z
*}ozCnzZlor0<ImageSource="a1.png"Canvas.Left="120"Canvas.Top="50">
E
dj)}2g S1I1I6[2K5s0<Image.RenderTransform>
!{W6N[-V5|J0<MatrixTransform>
MJTo%AK5]0<MatrixTransform.Matrix>
o3t+tL2o.f0<MatrixOffsetX="0"OffsetY="0"M12="0.4"></Matrix>
b3C2Of7o2\0</MatrixTransform.Matrix>