10.7 MatrixTransform矩阵变换(组图)
10.7 MatrixTransform矩阵变换
矩阵变换MatrixTransform是所有变换对象中功能最强大最灵活也是最复杂的一种变换,前面讲解的几种简单变换如果不能满足实际开发中的需求,可以使用矩阵变换进行自定义,它允许我们直接对变换矩阵进行操作。
在Silverlight中,变换是提供一个3×3的矩阵,通过修改矩阵中成员的值来实现变换,矩阵的定义如图10-11所示。
![]() |
(点击查看大图)图10-11
该矩阵的最后一列值是固定的,不会改变,如果修改矩阵中OffsetX的值,元素将会在X轴上进行移动;修改OffsetY,元素将在Y轴上移动;修改M22为2,元素的高度将会拉伸2倍,通过修改该矩阵,能实现前面提到的几种简单变换的所有功能,事实上前几种简单变换只是矩阵变换的特例而已,单独使用MatrixTransform对象,可以实现所有的变换。如下面的示例代码所示:
XAML<Canvasx:Name=”LayoutRoot”Background=”White”><TextBlockText=”欢迎进入Silverlight世界”Canvas.Top=”30″Canvas.center=”30″Opacity=”0.5″></TextBlock>
<TextBlockText=”欢迎进入Silverlight世界”Canvas.Top=”30″Canvas.center=”30″Foreground=”OrangeRed”><TextBlock.RenderTransform><MatrixTransform><MatrixTransform.Matrix><MatrixM11=”1″M12=”0.3″M21=”0.3″M22=”0.8″OffsetX=”10″OffsetY=”20″/></MatrixTransform.Matrix></MatrixTransform></TextBlock.RenderTransform></TextBlock></Canvas>
运行效果如图10-12所示。
![]() |
(点击查看大图)图10-12

