通过使用变换(transform),许多绘图任务将更趋简单;变换是通过不加通告地切换形状或元素使用讴歌的坐标系统来改变形状或元素绘制方式的对象。在WPF中,变换由继承自System.Windows.Media.Transform抽象类的类表示。
名称 | 说明 | 重要属性 |
---|---|---|
TranslateTransform | 将坐标系统移动一定距离。如果希望在不同的地方绘制相同的形状,该变换非常有用 | X、Y |
RotateTransform | 旋转坐标系统。正常绘制的形状绕着选择的中心点选装 | Angle、CenterX、CenterY |
ScaleTransform | 放大或缩小坐标系统,从而绘制更大或者更小的图形。可在X和Y方向应用不同的缩放度,从而拉伸或压缩形状 | ScaleX、ScaleY、CenterX、CenterY |
SkewTransform | 通过倾斜一定的角度扭曲坐标系统。例如,如果绘制正方形,通过该变换正方形会变成平行四边形 | AngleX、AngleY、CenterX、CenterY |
MatrixTransform | 矩阵变换 | Matrix |
TransformGroup | 组合多个变换 | N/A |
- 使用RotateTransform的CenterX和CenterY属性时存在明显的限制。这些属性是使用绝对坐标定义的,这意味着需要了解绘制内容的中心点的准确位置。幸运的是,WPF通过RenderTransformOrigin属性解决了这一问题,任何形状都支持RenderTransformOrigin属性,该属性使用相对坐标系统设置中心点,相对坐标系统在两个方向上的范围都是从0到1,点(0,0)被指定为左上角,点(1,1)表示右下角。
- RenderTransform不是在WPF基类中定义的唯一与变换相关的属性。FrameworkElement类还定义了LayoutTransform属性。LayoutTransform属性以相同的方式变换元素,但在布局之前执行其工作。