This documentation is archived and is not being maintained.

TransformGroup.Children Property

Gets or sets the TransformCollection that defines this TransformGroup.

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

public TransformCollection Children { get; set; }
  <TransformCollection .../>

Property Value

Type: System.Windows.Media.TransformCollection
A collection of Transform objects that define this TransformGroup. The default is an empty collection.

Identifier field


Metadata properties set to true


In a composite transformation, the order of individual transformations is important. For example, if you first rotate, then scale, then translate, you get a different result than if you first translate, then rotate, then scale. One reason order is significant is that transformations like rotation and scaling are done with respect to the origin of the coordinate system. Scaling an object that is centered at the origin produces a different result than scaling an object that has been moved away from the origin. Similarly, rotating an object that is centered at the origin produces a different result than rotating an object that has been moved away from the origin.

This example shows how to use a TransformGroup to group two or more Transform objects into a single composite Transform.

The following example uses a TransformGroup to apply a ScaleTransform and a RotateTransform to a Button.

  xmlns:x="" >
  <StackPanel Margin="50">


          <!-- TransformGroup enables you to apply multiple transforms. In 
               this example, the button is scaled and rotated. -->

            <!-- Triple the size (scale) of the button in the Y direction. -->
            <ScaleTransform ScaleY="3" />

            <!-- Rotate the button by 45 degrees. -->
            <RotateTransform Angle="45" />



using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace SDKSample
    public partial class MultipleTransformsExample : Page
        public MultipleTransformsExample()
            // Create a Button that will have two transforms applied to it.
            Button myButton = new Button();
            myButton.Content = "Click";

            // Set the center point of the transforms.
            myButton.RenderTransformOrigin = new Point(0.5,0.5);

            // Create a transform to scale the size of the button.
            ScaleTransform myScaleTransform = new ScaleTransform();

            // Set the transform to triple the scale in the Y direction.
            myScaleTransform.ScaleY = 3;

            // Create a transform to rotate the button
            RotateTransform myRotateTransform = new RotateTransform();

            // Set the rotation of the transform to 45 degrees.
            myRotateTransform.Angle = 45;

            // Create a TransformGroup to contain the transforms
            // and add the transforms to it.
            TransformGroup myTransformGroup = new TransformGroup();

            // Associate the transforms to the button.
            myButton.RenderTransform = myTransformGroup;

            // Create a StackPanel which will contain the Button.
            StackPanel myStackPanel = new StackPanel();
            myStackPanel.Margin = new Thickness(50);
            this.Content = myStackPanel;


.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.