次の方法で共有


方法: 要素をスケーリングする

この例では、ScaleTransform を使用して要素をスケーリングする方法を示します。

ScaleX プロパティと ScaleY プロパティを使用して、指定した要素のサイズを変更します。 たとえば、ScaleX 値が 1.5 の場合、要素は元の幅の 150% に拡張されます。 ScaleY 値が 0.5 の場合、要素の高さが 50% 縮小されます。

CenterX プロパティと CenterY プロパティを使用して、スケール操作の中心となるポイントを指定します。 既定では、ScaleTransform は、四角形の左上隅に対応するポイント (0,0) の中央に配置されます。 Transformを適用すると、オブジェクトが存在する座標空間が変更されるため、要素を移動したり、要素を大きく表示したりする効果があります。

次の例では、ScaleTransform を使用して 50 バイ 50 Rectangleのサイズを 2 倍にします。 ScaleTransform の値は、CenterXCenterYの両方に対して 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) に設定します。

次の例は、サイズが 2 倍になっている別の Rectangle を示しています。ただし、この ScaleTransform の値は、四角形の中心に対応する CenterXCenterYの両方に対して 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>

次の図は、2 つの ScaleTransform 操作の違いを示しています。 点線は、スケーリング前の四角形のサイズと位置を示しています。

異なる中心点を持つ 2 倍のスケール
同じ ScaleX 値と ScaleY 値を持ち、中心が異なる 2 つの ScaleTransform 操作

完全なサンプルについては、「2D Transforms Sample」を参照してください。

こちらも参照ください