此示例演示如何使用 ScaleTransform 缩放元素。
使用 ScaleX 和 ScaleY 属性根据指定的因子调整元素的大小。 例如,ScaleX 值 1.5 将元素拉伸到其原始宽度的 150%。 ScaleY 值为 0.5 会将元素的高度缩小 50%。
使用 CenterX 和 CenterY 属性指定缩放操作的中心点。 默认情况下,ScaleTransform 居中位于与矩形左上角相对应的点(0,0)。 这会影响移动元素并使其看起来更大,因为在应用 Transform时,可以更改对象所在的坐标空间。
下面的示例使用 ScaleTransform 将 50*50 的 Rectangle 的大小增加一倍。 对于 ScaleTransform 和 CenterX,CenterY 的值为 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;但是,对于 ScaleTransform 和 CenterX,此 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 操作之间的差异。 虚线显示的是矩形在缩放之前的大小和位置。
两个 ScaleTransform 操作具有相同的 ScaleX 和 ScaleY 值,但中心点不同。
有关完整示例,请参阅 二维转换示例。