LEADTOOLS WPF and Silverlight (Leadtools.Windows.Controls assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.30
Transform Property
See Also 
Leadtools.Windows.Controls Namespace > ImageViewer Class : Transform Property



Gets the current display matrix used in this control. Supported in Silverlight, Windows Phone 7

Syntax

Visual Basic (Declaration) 
Public Overridable ReadOnly Property Transform As Matrix
Visual Basic (Usage)Copy Code
Dim instance As ImageViewer
Dim value As Matrix
 
value = instance.Transform
C# 
public virtual Matrix Transform {get;}
C++/CLI 
public:
virtual property Matrix Transform {
   Matrix get();
}

Property Value

A System.Windows.Media.Matrix that contains the current display matrix used in this control.

Example

Visual BasicCopy Code
Private Sub viewer_TransformChanged(ByVal sender As Object, ByVal e As EventArgs)
    Dim viewer As ImageViewer = TryCast(sender, ImageViewer)
    Dim s As String = String.Format("TransformChanged Event: {0}", viewer.Transform.ToString())
    MessageBox.Show(s)
End Sub
Public Sub ImageViewer_TransformChanged(ByVal viewer As ImageViewer)
    AddHandler viewer.TransformChanged, AddressOf viewer_TransformChanged

    Select Case viewer.SizeMode
        Case SizeMode.Fit
            viewer.SizeMode = SizeMode.FitAlways

        Case SizeMode.FitAlways
            viewer.SizeMode = SizeMode.FitWidth

        Case SizeMode.FitWidth
            viewer.SizeMode = SizeMode.Normal

        Case SizeMode.Normal
            viewer.SizeMode = SizeMode.Stretch

        Case SizeMode.Stretch
            viewer.SizeMode = SizeMode.Fit
    End Select

    RemoveHandler viewer.TransformChanged, AddressOf viewer_TransformChanged
End Sub
C#Copy Code
private void viewer_TransformChanged(object sender, EventArgs e)
{
   ImageViewer viewer = sender as ImageViewer;
   string s = string.Format("TransformChanged Event: {0}", viewer.Transform.ToString());
   MessageBox.Show(s);
}
public void ImageViewer_TransformChanged(ImageViewer viewer)
{
   viewer.TransformChanged += new EventHandler(viewer_TransformChanged);

   switch (viewer.SizeMode)
   {
      case SizeMode.Fit:
         viewer.SizeMode = SizeMode.FitAlways;
         break;

      case SizeMode.FitAlways:
         viewer.SizeMode = SizeMode.FitWidth;
         break;

      case SizeMode.FitWidth:
         viewer.SizeMode = SizeMode.Normal;
         break;

      case SizeMode.Normal:
         viewer.SizeMode = SizeMode.Stretch;
         break;

      case SizeMode.Stretch:
         viewer.SizeMode = SizeMode.Fit;
         break;
   }

   viewer.TransformChanged -= new EventHandler(viewer_TransformChanged);
}
SilverlightCSharpCopy Code
private void viewer_TransformChanged(object sender, EventArgs e)
{
   ImageViewer viewer = sender as ImageViewer;
   string s = string.Format("TransformChanged Event: {0}", viewer.Transform.ToString());
   MessageBox.Show(s);
}
public void ImageViewer_TransformChanged(ImageViewer viewer)
{
   viewer.TransformChanged += new EventHandler(viewer_TransformChanged);

   switch (viewer.SizeMode)
   {
      case SizeMode.Fit:
         viewer.SizeMode = SizeMode.FitAlways;
         break;

      case SizeMode.FitAlways:
         viewer.SizeMode = SizeMode.FitWidth;
         break;

      case SizeMode.FitWidth:
         viewer.SizeMode = SizeMode.Normal;
         break;

      case SizeMode.Normal:
         viewer.SizeMode = SizeMode.Stretch;
         break;

      case SizeMode.Stretch:
         viewer.SizeMode = SizeMode.Fit;
         break;
   }

   viewer.TransformChanged -= new EventHandler(viewer_TransformChanged);
}
SilverlightVBCopy Code
Private Sub viewer_TransformChanged(ByVal sender As Object, ByVal e As EventArgs)
   Dim viewer As ImageViewer = TryCast(sender, ImageViewer)
   Dim s As String = String.Format("TransformChanged Event: {0}", viewer.Transform.ToString())
   MessageBox.Show(s)
End Sub
Public Sub ImageViewer_TransformChanged(ByVal viewer As ImageViewer)
   AddHandler viewer.TransformChanged, AddressOf viewer_TransformChanged

   Select Case viewer.SizeMode
      Case SizeMode.Fit
         viewer.SizeMode = SizeMode.FitAlways

      Case SizeMode.FitAlways
         viewer.SizeMode = SizeMode.FitWidth

      Case SizeMode.FitWidth
         viewer.SizeMode = SizeMode.Normal

      Case SizeMode.Normal
         viewer.SizeMode = SizeMode.Stretch

      Case SizeMode.Stretch
         viewer.SizeMode = SizeMode.Fit
   End Select

   RemoveHandler viewer.TransformChanged, AddressOf viewer_TransformChanged
End Sub

Remarks

The Transform property will contain the accumulative transforms performed on the image before it is being displayed by the control. The following properties determine the final transformation of the image:

  • The control size

  • The image physical size in pixels and if using the image resolution is enabled with the UseDpi property

  • Any manual correction with the AspectRatioCorrection

  • The current zoom using the ScaleFactor property

  • The current display and automatic adjustment set with the SizeMode property

  • Image viewing transformation using the Flip, Reverse and RotateAngle properties

Although you can use the Transform property to calculate where a location or bounds on the image will be displayed on the control and vice versa using the Matrix.Transform methods, you can easily achieve this task with the control PointToImageCoordinates, BoundsToImageCoordinates, PointFromImageCoordinates and BoundsFromImageCoordinates methods

Requirements

Target Platforms: Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also