Leadtools.WinForms Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
BeginUpdate Method
See Also  Example
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 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also