Como: Scale an Element
Este exemplo mostra como usar uma ScaleTransform para aplicar escala a um elemento.
Use as propriedades ScaleX e ScaleY para redimensionar o elemento pelo fator especificado. Por exemplo, um valor de 1,5 para ScaleX expande o elemento para 150% de sua largura original. Um valor de 0,5 para ScaleY reduz a altura de um elemento em 50 por cento.
Use as propriedades CenterX e CenterY para especificar o ponto que é o centro da operação de escala. Por padrão, uma ScaleTransform é centralizada no ponto (0,0), que corresponde ao canto superior esquerdo do retângulo. Isso tem o efeito de mover o elemento e também de fazê-lo parecer maior, pois quando você aplica uma Transform, você alterar o espaço de coordenadas no qual o objeto reside.
O exemplo a seguir usa uma ScaleTransform para dobrar o tamanho de um Rectangle 50-por-50. A ScaleTransform possui um valor de 0 (o padrão) para CenterX e CenterY.
Exemplo
<!-- 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>
Normalmente, você conjunto CenterX e CenterY para o centralizar do objeto que é dimensionado: (Width/2, Height/2).
O exemplo a seguir mostra outro Rectangle que é duplicado em tamanho; no entanto, essa ScaleTransform possui um valor de 25 para CenterX e CenterY, o que corresponde ao centro do retângulo.
<!-- 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>
A ilustração a seguir mostra a diferença entre as duas operações ScaleTransform. A linha pontilhada mostra o tamanho e a posição do retângulo antes escala.
Duas operações ScaleTransform com valores idênticos de ScaleX e ScaleY, mas diferentes centros
For the complete sample, see Exemplo de transformações 2-D.
Consulte também
Conceitos
Visão Geral sobre Transformações