如何:缩放元素

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

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

使用 CenterXCenterY 属性指定缩放操作的中心点。 默认情况下,ScaleTransform 居中位于与矩形左上角相对应的点(0,0)。 这会影响移动元素并使其看起来更大,因为在应用 Transform时,可以更改对象所在的坐标空间。

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

以不同中心点进行的 2 倍缩放
两个 ScaleTransform 操作具有相同的 ScaleX 和 ScaleY 值,但中心点不同。

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

另请参阅