Object Transforms in WPF

image_pdfimage_print


   
  


<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;
        }

    }
}