The ScaleX and ScaleY properties of this ScaleTransform are each animated from 0 to 1


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="Microsoft.Samples.Graphics.Transforms.AnimatedScaleTransformExample"
  WindowTitle="Animated ScaleTransform Example" 
  Background="White">
  
    <StackPanel Margin="10">
        <Canvas Width="250" Height="250">
          <Rectangle
            Height="50" Width="50" Fill="#CCCCCCFF" Stroke="Blue" StrokeThickness="2"
            Canvas.Left="100" Canvas.Top="100">
            <Rectangle.RenderTransform>
              <ScaleTransform x:Name="MyAnimatedScaleTransform" CenterX="25" CenterY="25" ScaleX="1" ScaleY="1" />
            </Rectangle.RenderTransform>
          </Rectangle>
          <Rectangle Height="50" Width="50" Stroke="#99000000"
            StrokeDashArray="4,1" StrokeThickness="2"
            Canvas.Left="100" Canvas.Top="100" />            
        </Canvas>
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"
        Margin="10">
        <Button Name="startButton" Margin="0,0,2,0">Start</Button>
        <Button Name="stopButton">Stop</Button>
        <StackPanel.Triggers>
          <EventTrigger SourceName="startButton" RoutedEvent="Button.Click">
            <BeginStoryboard Name="myBeginStoryboard">
              <Storyboard>
                <DoubleAnimation 
                  Storyboard.TargetName="MyAnimatedScaleTransform" 
                  Storyboard.TargetProperty="ScaleX" 
                  From="0" To="3" Duration="0:0:2" />
                <DoubleAnimation 
                  Storyboard.TargetName="MyAnimatedScaleTransform" 
                  Storyboard.TargetProperty="ScaleY" 
                  From="0" To="3" Duration="0:0:2" />              
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger>
          <EventTrigger SourceName="stopButton" RoutedEvent="Button.Click">
            <StopStoryboard BeginStoryboardName="myBeginStoryboard" />
          </EventTrigger>          
        </StackPanel.Triggers>
      </StackPanel>  
    </StackPanel>
</Page>

   
    
     


Animated SkewTransform Example


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="Microsoft.Samples.Graphics.Transforms.AnimatedSkewTransformExample"
  WindowTitle="Animated SkewTransform Example">
  <StackPanel Orientation="Horizontal"> 
    <StackPanel Margin="10">
        <Canvas Width="250" Height="250">
          <Rectangle
            Height="50" Width="50" Fill="Red" Stroke="Blue" StrokeThickness="2" Canvas.Left="100" Canvas.Top="100">
            <Rectangle.RenderTransform>
              <SkewTransform x:Name="MyAnimatedSkewTransform" CenterX="25" CenterY="25" AngleX="0" AngleY="0" />
            </Rectangle.RenderTransform>
          </Rectangle>
          <Rectangle Height="50" Width="50" Stroke="#99000000"
            StrokeDashArray="4,1" StrokeThickness="2"
            Canvas.Left="100" Canvas.Top="100" />            
        </Canvas>
      <StackPanel Orientation="Horizontal">
        <Button Name="startButton" Margin="0,0,2,0">Start</Button>
        <Button Name="stopButton">Stop</Button>
        <StackPanel.Triggers>
          <EventTrigger SourceName="startButton" RoutedEvent="Button.Click">
            <BeginStoryboard Name="myBeginStoryboard">
              <Storyboard>
                <DoubleAnimation 
                  Storyboard.TargetName="MyAnimatedSkewTransform" 
                  Storyboard.TargetProperty="AngleX" 
                  From="0" To="180" Duration="0:0:4" />
                <DoubleAnimation 
                  Storyboard.TargetName="MyAnimatedSkewTransform" 
                  Storyboard.TargetProperty="AngleY" 
                  From="0" To="180" Duration="0:0:4" />             
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger>
          <EventTrigger SourceName="stopButton" RoutedEvent="Button.Click">
            <StopStoryboard BeginStoryboardName="myBeginStoryboard" />
          </EventTrigger>          
        </StackPanel.Triggers>        
      </StackPanel>  
    </StackPanel>
  </StackPanel>
</Page>

   
    
     


Animated ScaleTransform


   
  

<Window x:Class="Workspace.DockExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Workspace" Width="640" Height="480">
    <StackPanel Orientation="Horizontal"> 
        <Canvas Width="200" Height="200">
            <Polyline Name="myAnimatedPolyline"
              Points="25,25 0,50 25,75 50,50 25,25 25,0" Stroke="Blue" StrokeThickness="10"
                 Canvas.Left="75" Canvas.Top="50">
                <Polyline.RenderTransform>

                    <TransformGroup>
                        <TransformGroup.Children>
                            <TransformCollection>
                                <RotateTransform 
                                  x:Name="AnimatedRotateTransform"
                                  CenterX="25" CenterY="50" Angle="0" />
                                <ScaleTransform 
                                  x:Name="AnimatedScaleTransform"
                                  CenterX="25" CenterY="50" ScaleX="1" ScaleY="1" />
                            </TransformCollection>
                        </TransformGroup.Children>
                    </TransformGroup>
                    
                </Polyline.RenderTransform>
            </Polyline>
        </Canvas>
        <Button Name="startButton" Margin="0,0,2,0">Start</Button>
        <Button Name="stopButton">Stop</Button>
        <StackPanel.Triggers>
          <EventTrigger SourceName="startButton" RoutedEvent="Button.Click">
            <BeginStoryboard Name="myBeginStoryboard">
              <Storyboard>
                <DoubleAnimation Storyboard.TargetName="AnimatedRotateTransform"
                  Storyboard.TargetProperty="Angle" 
                  From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever" />
                <DoubleAnimation 
                  Storyboard.TargetName="AnimatedScaleTransform"
                  Storyboard.TargetProperty="ScaleX"
                  From="0" To="3" Duration="0:0:5" RepeatBehavior="Forever"
                  AutoReverse="True" />
                <DoubleAnimation  
                  Storyboard.TargetName="AnimatedScaleTransform"
                  Storyboard.TargetProperty="ScaleY"
                  From="0" To="3" Duration="0:0:5" RepeatBehavior="Forever" 
                  AutoReverse="True"/>          
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger>
          <EventTrigger SourceName="stopButton" RoutedEvent="Button.Click">
            <StopStoryboard BeginStoryboardName="myBeginStoryboard" />
          </EventTrigger>          
        </StackPanel.Triggers>        
      </StackPanel>
  
</Window>

   
    
     


Translate then Rotate


   
  

<Window x:Class="Workspace.DockExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Workspace" Width="640" Height="480">
            <Canvas Height="200" Width="200">
                <Polyline
                  Points="25,25 0,50 25,75 50,50 25,25 25,0" Stroke="Blue" StrokeThickness="10"
                  Canvas.Left="75" Canvas.Top="50">
                    <Polyline.RenderTransform>
                
                    
                        <TransformGroup>
                            <TransformGroup.Children>
                                <TransformCollection>
                                    <TranslateTransform X="50" Y="0" />
                                    <RotateTransform CenterX="25" CenterY="50" Angle="45" />
                                </TransformCollection>
                            </TransformGroup.Children>
                        </TransformGroup>

                    </Polyline.RenderTransform>
                </Polyline>
                <Polyline Points="25,25 0,50 25,75 50,50 25,25 25,0" Stroke="Blue" StrokeThickness="10"
                  Opacity="0.25" Canvas.Left="75" Canvas.Top="50" />

            </Canvas>

</Window>

   
    
     


Rotate then Translate


   
  

<Window x:Class="Workspace.DockExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Workspace" Width="640" Height="480">

        <Canvas Height="200" Width="200">
          <Polyline
            Points="25,25 0,50 25,75 50,50 25,25 25,0" Stroke="Blue" StrokeThickness="10"
            Canvas.Left="75" Canvas.Top="50">
            <Polyline.RenderTransform>
                <TransformGroup>
                    <TransformGroup.Children>
                        <TransformCollection>
                            <RotateTransform CenterX="25" CenterY="50" Angle="45" />
                            <TranslateTransform X="50" Y="0" />
                        </TransformCollection>
                    </TransformGroup.Children>
               </TransformGroup>
            </Polyline.RenderTransform>
          </Polyline>
          <Polyline Points="25,25 0,50 25,75 50,50 25,25 25,0" Stroke="Blue" StrokeThickness="10"
            Opacity="0.25" Canvas.Left="75" Canvas.Top="50" /> 
        </Canvas>

</Window>

   
    
     


The X and Y properties of this TranslateTransform are each animated from -50 to 50


   
  

<Window x:Class="Workspace.DockExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Workspace" Width="640" Height="480">
    <StackPanel Orientation="Horizontal"> 

        <Canvas Width="250" Height="250">
          <Rectangle 
            Height="50" Width="50" Fill="Red" Stroke="Blue" StrokeThickness="2"
            Canvas.Left="100" Canvas.Top="100">
            <Rectangle.RenderTransform>
              <TranslateTransform x:Name="AnimatedTranslateTransform" X="0" Y="0" />
            </Rectangle.RenderTransform>
          </Rectangle>
        </Canvas>
        <Button Name="startButton" Margin="0,0,2,0">Start</Button>
        <Button Name="stopButton">Stop</Button>
        <StackPanel.Triggers>
          <EventTrigger SourceName="startButton" RoutedEvent="Button.Click">
            <BeginStoryboard Name="myBeginStoryboard">
              <Storyboard>
        <DoubleAnimation Storyboard.TargetName="AnimatedTranslateTransform" 
        Storyboard.TargetProperty="X" 
          From="-50" To="50" Duration="0:0:2" />
        <DoubleAnimation Storyboard.TargetName="AnimatedTranslateTransform" 
        Storyboard.TargetProperty="Y" 
        From="-50" To="50" Duration="0:0:2" />         
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger>
          <EventTrigger SourceName="stopButton" RoutedEvent="Button.Click">
            <StopStoryboard BeginStoryboardName="myBeginStoryboard" />
          </EventTrigger>          
        </StackPanel.Triggers>        
      </StackPanel>
</Window>

   
    
     


TranslateTransform X: 50 / Y: 50


   
  

<Window x:Class="Workspace.DockExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Workspace" Width="640" Height="480">
        <Canvas Width="250" Height="250">
          <Rectangle Height="50" Width="50" 
            Fill="#CCCCCCFF" Stroke="Blue" StrokeThickness="2"
            Canvas.Left="100" Canvas.Top="100">
            <Rectangle.RenderTransform>
              <TranslateTransform X="50" Y="50" />
            </Rectangle.RenderTransform>
          </Rectangle>
        </Canvas>

</Window>