Export (0) Print
Expand All

MatrixTransform Class

Creates an arbitrary affine matrix transformation that is used to manipulate objects or coordinate systems in a 2-D plane. 

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

'Declaration
Public NotInheritable Class MatrixTransform _
	Inherits Transform
'Usage
Dim instance As MatrixTransform
<MatrixTransform .../>
<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>

XAML Values

m11

System.Double

The value at position (1, 1) of the transformation Matrix.

m12

System.Double

The value at position (1, 2) of the transformation Matrix.

m21

System.Double

The value at position (2, 1) of the transformation Matrix.

m22

System.Double

The value at position (2, 2) of the transformation Matrix.

offsetX

System.Double

The value at position (3, 1) of the transformation Matrix.

offsetY

System.Double

The value at position (3, 2) of the transformation Matrix.

Use the MatrixTransform class to create custom transformations that are not provided by the RotateTransform, SkewTransform, ScaleTransform, or TranslateTransform classes.

A 3x3 matrix is used for transformations in a 2-D x-y plane. You can multiply affine matrix transformations to form linear transformations, such as rotation and skew (shear) that are followed by translation.

An affine matrix transformation has its final column equal to (0, 0, 1); therefore, you only have to specify the members in the first two columns.

A Windows Presentation Foundation (WPF) Matrix has the following structure:

The members in the last row, OffsetX and OffsetY, represent translation values.

Methods and properties usually specify the transformation matrix as a vector that has only six members; the members are as follows:

    (M11, M12, M21, M22, OffsetX, OffsetY)

This example shows how to use a MatrixTransform to translate (move) the position, stretch, and skew of a Button.

NoteNote:

Use the MatrixTransform class to create custom transformations that are not provided by the RotateTransform, SkewTransform, ScaleTransform, or TranslateTransform classes.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <StackPanel Margin="20">
    <Canvas HorizontalAlignment="Left" Width="340" Height="240" >

      <Button MinWidth="100">Click
        <Button.RenderTransform>
          <MatrixTransform x:Name="myMatrixTransform">
            <MatrixTransform.Matrix >

              <!-- OffsetX and OffsetY specify the position of the button,
              M11 stretches it, and M12 skews it. -->
              <Matrix OffsetX="10" OffsetY="100" M11="3" M12="2"/>
            </MatrixTransform.Matrix>
          </MatrixTransform>
        </Button.RenderTransform>
      </Button>
    </Canvas>
  </StackPanel>
</Page>

More Code

How to: Animate a Matrix by Using Key Frames This example shows how to animate the Matrix property of a MatrixTransform by using key frames.
How to: Animate an Object Along a Path (Matrix Animation) This example shows how to use the MatrixAnimationUsingPath class to animate an object along a path that is defined by a PathGeometry.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

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

.NET Framework

Supported in: 3.5, 3.0

Community Additions

ADD
Show:
© 2014 Microsoft