如何:缩放元素

更新:2007 年 11 月

本示例演示如何使用 ScaleTransform 来缩放元素。

使用 ScaleXScaleY 属性可以按照指定的系数调整元素的大小。例如,ScaleX 值为 1.5 时,会将元素拉伸到其原始宽度的 150%。ScaleY 值为 0.5 时,会将元素的高度缩小 50%。

使用 CenterXCenterY 属性可以指定缩放操作的中心点。默认情况下,ScaleTransform 的中心点是 (0,0),该点与矩形的左上角相对应。这会导致该元素移动并使其看上去更大,原因是,当您应用 Transform 时,对象所在的坐标空间会改变。

下面的示例使用 ScaleTransform 将长和宽均为 50 的 Rectangle 的尺寸放大一倍。对于 CenterXCenterY 来说,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>

通常,可以将 CenterXCenterY 设置为缩放的对象的中心 (Width/2, Height/2)。

下面的示例演示了另一个尺寸放大一倍的 Rectangle;但是,对于 CenterXCenterY 来说,这个 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 操作

以不同中心点进行的 2x 缩放

有关完整示例,请参见 二维转换示例

请参见

概念

变换概述

参考

Transform

ScaleTransform

其他资源

变换帮助主题