在应用程序的开发过程中,为了让界面按照期望的效果显示,有时会对界面元素应用变形特效,例如图片的缩放、旋转、移动等。与3D特效不同,在界面元素实现变形特效之后,其平行关系不会发生改变,只不过是位置、大小或方向发生了改变。
变形特效由界面元素的RenderTransform属性提供支持,此属性是Transform类型的属性, TranslateTransform、RotateTransform、ScaleTransform等都继承自Transform类,通过将它们赋值给RenderTransform,可以实现界面元素的平移、旋转以及缩放等变形特效,下面列举了RenderTransform所包含的Transform类型成员。
,能够使元素的位置发生平移变化,两个比较重要的属性是X和Y,分别代表相对于元素的起始点偏移量。
q RotateTransform,能够使元素产生旋转变化,根据中心点进行顺时针或逆时针旋转。
q ScaleTransform,能够使元素产生缩放变化。它有两个重要属性ScaleX和ScaleY。对于ScaleX而言,如果值介于0 和1之间,就会减小缩放对象的宽度;如果值大于1,会增大缩放对象的宽度;如果值为1,表示对象不在 X轴方向进行缩放;如果为负值,会沿水平方向翻转缩放对象; 如果值介于0和-1之间,代表翻转缩放对象并减小其宽度;如果值小于-1,会翻转对象并增大其宽度;如果值为-1,则翻转缩放对象,但不更改其宽度大小。
q SkewTransform,能够使元素产生扭曲变化,它的四个属性中,AngleX和AngleY决定扭曲对象的倾斜度,CenterX和CenterY决定扭曲的中心点。
q TransformGroup,能够使元素的缩放、旋转、扭曲等变形特效综合起来使用。
q MatrixTransform,能够使元素通过矩阵算法实现更为复杂的变形。
变形元素包括平移变形、缩放变形、旋转变形、扭曲变形、组合变形以及矩阵变形元素,变形特效常用于在不改变元素本身构成的情况下,使其产生变形效果。下面将逐一介绍上述的几种变形效果。