LEADTOOLS Windows Forms (Leadtools.WinForms assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.30
BeginUpdate Method
See Also 
Leadtools.WinForms Namespace > RasterImageViewer Class : BeginUpdate Method



Prevents the control from drawing until the EndUpdate method is called.

Syntax

Visual Basic (Declaration) 
Public Overridable Sub BeginUpdate() 
Visual Basic (Usage)Copy Code
Dim instance As RasterImageViewer
 
instance.BeginUpdate()
C# 
public virtual void BeginUpdate()
C++/CLI 
public:
virtual void BeginUpdate(); 

Example

This sample zooms out on the image, keeping it centered. The resulting transform is displayed in the console.

Visual BasicCopy Code
''' 
' center the loaded image in the middle of rasterImageViewer if the image smaller than the viewer size 
Private Sub centerImage(ByVal viewer As RasterImageViewer)
   ' do center only when RasterViewerSizeMode == Normal
   If viewer.SizeMode = RasterPaintSizeMode.Normal Then
      If viewer.IsImageAvailable = True Then
         If Not viewer.Image Is Nothing Then
            Dim viewerWidth As Integer = viewer.Right - viewer.Left
            Dim viewerHeight As Integer = viewer.Bottom - viewer.Top
            Dim imageWidth As Integer = CInt(viewer.LogicalViewRectangle.Width * viewer.ScaleFactor)
            Dim imageHeight As Integer = CInt(viewer.LogicalViewRectangle.Height * viewer.ScaleFactor)
            If imageWidth < viewerWidth Then
               viewer.BorderPadding.Left = (viewerWidth - imageWidth) \ 2
            Else
               viewer.BorderPadding.Left = 0
            End If

            If imageHeight < viewerHeight Then
               viewer.BorderPadding.Top = (viewerHeight - imageHeight) \ 2
            Else
               viewer.BorderPadding.Top = 0
            End If
         End If
      End If
   End If
End Sub

Private Sub viewer_TransformedChanged(ByVal sender As Object, ByVal e As EventArgs)
   Dim viewer As RasterImageViewer = CType(IIf(TypeOf sender Is RasterImageViewer, sender, Nothing), RasterImageViewer)
   Dim s As String = String.Format("Transform: {0} {1} {2} {3} {4} {5}", viewer.Transform.Elements(0), viewer.Transform.Elements(1), viewer.Transform.Elements(2), viewer.Transform.Elements(3), viewer.Transform.Elements(4), viewer.Transform.Elements(5))

   Console.WriteLine(s)
End Sub

Public Sub RasterImageViewer_BeginUpdate(ByVal viewer As RasterImageViewer)
   AddHandler viewer.TransformChanged, AddressOf viewer_TransformedChanged

   viewer.BeginUpdate() ' suspend painting of the image
   viewer.ScaleFactor = viewer.ScaleFactor * 0.9F
   centerImage(viewer)
   viewer.EndUpdate() ' start painting of the image

   RemoveHandler viewer.TransformChanged, AddressOf viewer_TransformedChanged
End Sub
C#Copy Code
/// 
// center the loaded image in the middle of rasterImageViewer if the image smaller than the viewer size 
private void centerImage(RasterImageViewer viewer)
{
   // do center only when RasterViewerSizeMode == Normal
   if (viewer.SizeMode == RasterPaintSizeMode.Normal)
   {
      if (viewer.IsImageAvailable == true)
      {
         if (viewer.Image != null)
         {
            int viewerWidth = viewer.Right - viewer.Left;
            int viewerHeight = viewer.Bottom - viewer.Top;
            int imageWidth = (int)(viewer.LogicalViewRectangle.Width * viewer.ScaleFactor);
            int imageHeight = (int)(viewer.LogicalViewRectangle.Height * viewer.ScaleFactor);
            if (imageWidth < viewerWidth)
               viewer.BorderPadding.Left = (viewerWidth - imageWidth) / 2;
            else
               viewer.BorderPadding.Left = 0;

            if (imageHeight < viewerHeight)
               viewer.BorderPadding.Top = (viewerHeight - imageHeight) / 2;
            else
               viewer.BorderPadding.Top = 0;
         }
      }
   }
}

private void viewer_TransformedChanged(object sender, EventArgs e)
{
   RasterImageViewer viewer = sender as RasterImageViewer;
   string s = string.Format("Transform: {0} {1} {2} {3} {4} {5}",
      viewer.Transform.Elements[0],
      viewer.Transform.Elements[1],
      viewer.Transform.Elements[2],
      viewer.Transform.Elements[3],
      viewer.Transform.Elements[4],
      viewer.Transform.Elements[5]);

   Console.WriteLine(s);
}

public void RasterImageViewer_BeginUpdate(RasterImageViewer viewer)
{
   viewer.TransformChanged += new EventHandler(viewer_TransformedChanged);

   viewer.BeginUpdate();  // suspend painting of the image 
   viewer.ScaleFactor = viewer.ScaleFactor * 0.9F;
   centerImage(viewer);
   viewer.EndUpdate(); // start painting of the image 

   viewer.TransformChanged -= new EventHandler(viewer_TransformedChanged);
}

Remarks

When you want to disable repainting of the viewer, call BeginUpdate.
When you are ready to resume painting call EndUpdate.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also