如何:缩放元素

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

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

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

下面的示例使用 ScaleTransform 将 50*50 的 Rectangle 的大小增加一倍。 对于 CenterXCenterYScaleTransform 的值均为 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 的大小增加了一倍;但是,对于 CenterXCenterYScaleTransform 的值都是 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 操作之间的差异。 虚线显示的是矩形在缩放之前的大小和位置。

2x scales with different center points
两个具有相同 ScaleX 和 ScaleY 值但中心不同的 ScaleTransform 操作

有关完整示例,请参阅 2D 转换示例

另请参阅