Reader Level:
ARTICLE

ScaleTransform in WPF

Posted by Mahesh Chand Articles | WPF February 14, 2010
Scaling is a process of stretching or shrinking an element. The ScaleTransform scales an element by a given factor.
  • 0
  • 0
  • 45684

Scaling is a process of stretching or shrinking an element. The ScaleTransform scales an element by a given factor.

 

The ScaleTransform object in WPF represents ScaleTransform. The ScaleX and ScaleY properties represent the factor related to x and y coordinates respectively. The CenterX and CenterY properties represent the X and Y coordinates of the center point. By default, a ScaleTransform is centered at the point (0,0), which corresponds to the upper-left corner of the rectangle.

 

The code listed in Listing creates two rectangles with same position and size accepts the second rectangle is scaled to 1.5 and 2.0 toward the x and y axis respectively. Scaling value 1.5 represents 150% increase and 2.0 represents 200% increase.

 

<Rectangle Width="200" Height="50" Fill="Yellow" Margin="61,27,117,184" />

        <Rectangle Width="200" Height="50" Fill="Blue" Opacity="0.5" Margin="53,141,125,70">

            <Rectangle.RenderTransform>

                <ScaleTransform ScaleX="1.5" ScaleY="2.0" CenterX="50" CenterY="50" />

            </Rectangle.RenderTransform>

</Rectangle>

 

 

The output of Listing looks like Figure 1.

 

ScaleImg.jpg

Figure 1

 

The code listed in Listing creates a RotateTransform object dynamically and set it as RenderTransform property of a Rectangle. The output looks like Figure .

 

private void ScaleTransformSample()

{

    Rectangle originalRectangle = new Rectangle();

    originalRectangle.Width = 200;

    originalRectangle.Height = 50;

    originalRectangle.Fill = Brushes.Yellow;

    LayoutRoot.Children.Add(originalRectangle);

 

    Rectangle scaledRectangle = new Rectangle();

    scaledRectangle.Width = 200;

    scaledRectangle.Height = 50;

    scaledRectangle.Fill = Brushes.Blue;

    scaledRectangle.Opacity = 0.5;

    ScaleTransform scaleTransform1 = new ScaleTransform(1.5, 2.0, 50, 50);

    scaledRectangle.RenderTransform = scaleTransform1;

 

    LayoutRoot.Children.Add(scaledRectangle);

}

 

COMMENT USING

Trending up