Compartilhar via


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

Escalas duplas com diferentes pontos centrais

For the complete sample, see Exemplo de transformações 2-D.

Consulte também

Conceitos

Visão Geral sobre Transformações

Referência

Transform

ScaleTransform

Outros recursos

Transformations How-to Topics