このドキュメントはアーカイブされており、メンテナンスされていません。

ScaleTransform.ScaleX プロパティ

更新 : 2007 年 11 月

x 軸のスケール ファクタを取得または設定します。これは、依存関係プロパティです。

名前空間 :  System.Windows.Media
アセンブリ :  PresentationCore (PresentationCore.dll 内)
XAML の XMLNS : http://schemas.microsoft.com/winfx/xaml/presentation

public double ScaleX { get; set; }
/** @property */
public double get_ScaleX()
/** @property */
public  void set_ScaleX(double value)

public function get ScaleX () : double
public function set ScaleX (value : double)
<object ScaleX="double" .../>

プロパティ値

型 : System.Double

x 軸に沿ったスケール ファクタ。既定値は 1 です。

識別子フィールド

ScaleXProperty

true に設定されたメタデータのプロパティ

なし

0 ~ 1 の値を指定すると、スケーリング対象のオブジェクトの幅が短くなり、1 を超える値を指定するとスケーリング対象のオブジェクトの幅が広くなります。値 1 は、オブジェクトが x 方向にスケーリングされないことを示します。

負の値は、スケーリング対象のオブジェクトを左右に反転させます。0 ~ -1 (0 と -1 は含まない) の値を指定すると、スケーリング対象のオブジェクトが反転し、そのオブジェクトの幅が短くなります。-1 未満の値を指定すると、オブジェクトが反転し、そのオブジェクトの幅が広くなります。-1 の値を指定すると、スケーリング対象のオブジェクトは反転しますが、その横幅は変わりません。

使用例を含む詳細については、「方法 : 要素をスケーリングする」および「方法 : UIElement を左右または上下に反転させる」を参照してください。

ScaleTransform を使用して要素をスケーリングする方法を次の例に示します。

ScaleX および ScaleY プロパティを使用して、指定するファクタごとに要素のサイズを変更します。たとえば、ScaleX の値が 1.5 である場合、要素は元の幅の 150% に引き伸ばされます。ScaleY の値が 0.5 である場合、要素の高さは 50% 縮められます。

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

次のコード例では、ScaleTransform を使用して、縦横 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>


通常、CenterX および CenterY をスケーリングされるオブジェクトの中心に設定します (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 の操作の違いを次の図に示します。点線は、スケーリング前の四角形のサイズと位置を示します。

ScaleX 値と ScaleY 値が同じであっても中心が異なる 2 つの ScaleTransform 操作

中心点が異なる 2 倍のスケール

サンプル全体については、「2-D 変換のサンプル」を参照してください。

その他のコード

方法 : UIElement を左右または上下に反転させるこの例では、ScaleTransform を使用して UIElement を左右または上下に反転させる方法について説明します。この例では、Button コントロール (UIElement 型) を、その RenderTransform プロパティに ScaleTransform を適用することによって反転します。
方法 : FrameworkElement のサイズをアニメーション化するFrameworkElement のサイズをアニメーション化するには、その Width プロパティと Height プロパティをアニメーション化するか、アニメーション化された ScaleTransform を使用します。

Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0
表示: