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 Basic | Copy Code |
---|
Private Sub centerImage(ByVal viewer As RasterImageViewer)
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()
viewer.ScaleFactor = viewer.ScaleFactor * 0.9F
centerImage(viewer)
viewer.EndUpdate()
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
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