<Window x:Class="WpfApplication1.ObjectMatrixTransforms" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Object Matrix Transforms" Height="300" Width="400"> <StackPanel> <Button Click="BtnClose_Click" Margin="15,0,15,5">Close</Button> <Canvas Name="canvas1" ClipToBounds="True" Width="270" Height="280"> <TextBlock Canvas.Top="53" Canvas.Left="90">Original shape</TextBlock> <Rectangle Canvas.Top="70" Canvas.Left="100" Width="50" Height="70" Stroke="Black" StrokeThickness="2" StrokeDashArray="3,1" /> <Rectangle Name="rect" Canvas.Top="70" Canvas.Left="100" Width="50" Height="70" Fill="LightCoral" Opacity="0.5" Stroke="Black" StrokeThickness="2"> <Rectangle.RenderTransform> <MatrixTransform x:Name="matrixTransform" /> </Rectangle.RenderTransform> </Rectangle> </Canvas> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; namespace WpfApplication1 { public partial class ObjectMatrixTransforms : Window { public ObjectMatrixTransforms() { InitializeComponent(); } public void BtnApply_Click(object sender, EventArgs e) { Matrix m = new Matrix(); m.M11 = 1; m.M12 = 0; m.M21 = 0; m.M22 = 1; m.OffsetX = 1; m.OffsetY = 2; matrixTransform.Matrix = m; } } }