如何:缩放元素
本示例演示如何使用 ScaleTransform 来缩放元素。
使用 ScaleX 和 ScaleY 属性可以按照指定的系数调整元素的大小。 例如,ScaleX 值为 1.5 时,会将元素拉伸到其原始宽度的 150%。 ScaleY 值为 0.5 时,会将元素的高度缩小 50%。
使用 CenterX 和 CenterY 属性可以指定缩放操作的中心点。 默认情况下,ScaleTransform 的中心点是 (0,0),该点与矩形的左上角相对应。 这会导致该元素移动并使其看上去更大,原因是,当您应用 Transform 时,对象所在的坐标空间会改变。
下面的示例使用 ScaleTransform 将长和宽均为 50 的 Rectangle 的尺寸放大一倍。 对于 CenterX 和 CenterY 来说,ScaleTransform 的值均为 0(默认值)。
示例
<!-- Scales a rectangle by 200% from a center of (0,0).-->
<Rectangle Height="50" Width="50" Fill="#CCCCCCFF"
Stroke="Blue" StrokeThickness="2"
Canvas.Left="100" Canvas.Top="100">
<Rectangle.RenderTransform>
<ScaleTransform CenterX="0" CenterY="0" ScaleX="2" ScaleY="2" />
</Rectangle.RenderTransform>
</Rectangle>
通常,可以将 CenterX 和 CenterY 设置为缩放的对象的中心 (Width/2, Height/2)。
下面的示例演示了另一个尺寸放大一倍的 Rectangle;但是,对于 CenterX 和 CenterY 来说,这个 ScaleTransform 的值均为 25(与矩形的中心相对应)。
<!-- Scales a rectangle by 200% from a center of (25,25).-->
<Rectangle Height="50" Width="50" Fill="#CCCCCCFF"
Canvas.Left="100" Canvas.Top="100" Stroke="Blue" StrokeThickness="2">
<Rectangle.RenderTransform>
<ScaleTransform CenterX="25" CenterY="25" ScaleX="2" ScaleY="2" />
</Rectangle.RenderTransform>
</Rectangle>
下面的插图演示了这两个 ScaleTransform 操作之间的区别。 虚线显示的是矩形在缩放之前的大小和位置。
两个具有相同 ScaleX 和 ScaleY 值但是具有不同中心的 ScaleTransform 操作
有关完整示例,请参见 2-D Transforms Sample(二维转换示例)。