←Select platform

AnnContainer Class

Summary

Represents an Annotation container.

Syntax

C#
VB
C++
[SerializableAttribute()] 
public class AnnContainer : IDisposable 
  
<SerializableAttribute()> 
Public Class AnnContainer  
   Implements System.IDisposable  
[SerializableAttribute()] 
public ref class AnnContainer : public System.IDisposable   

Remarks

The annotation container is a rectangular area that holds annotation objects. The container is responsible for maintaining these objects as well as drawing them upon request.

Example

This example creates a new AnnContainer object, links it to a Leadtools.WinForms.RasterImageViewer object, adds a few objects and then draws the container on top of the viewer. Moving the mouse over an object displays the object type in the title bar.

C#
VB
using Leadtools; 
using Leadtools.Annotations; 
using Leadtools.Codecs; 
using Leadtools.WinForms; 
 
class MyForm1 : Form 
{ 
   AnnContainer container; 
   //AnnAutomationManager manager; 
   RasterImageViewer viewer; 
   RasterCodecs codecs; 
 
   public MyForm1(string title) 
   { 
      Text = title; 
      Size = new Size(500, 200); 
 
      viewer = new RasterImageViewer(); 
      viewer.Dock = DockStyle.Fill; 
      Controls.Add(viewer); 
      viewer.BringToFront(); 
 
      // load an image into the viewer 
      codecs = new RasterCodecs(); 
      string fileName = Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp"); 
      viewer.Image = codecs.Load(fileName); 
 
      // create and set up the container 
      container = new AnnContainer(); 
      container.Bounds = new AnnRectangle(0, 0, viewer.ImageSize.Width, viewer.ImageSize.Height); 
      container.UnitConverter = new AnnUnitConverter(viewer.ImageDpiX, viewer.ImageDpiY); 
 
      // subscribe to the view PostTransformPaint and TransformChanged events to be able to correctly draw the container 
      viewer.PostImagePaint += new PaintEventHandler(viewer_PostImagePaint); 
      viewer.TransformChanged += new EventHandler(viewer_TransformChanged); 
      viewer.MouseMove += new MouseEventHandler(viewer_MouseMove); 
 
      // add a few objects to the container 
      AnnLineObject line = new AnnLineObject(); 
      line.Name = "Line1"; 
      line.Pen = new AnnPen(Color.Red, new AnnLength(1, AnnUnit.Pixel)); 
      line.StartPoint = new AnnPoint(0, 0, AnnUnit.Pixel); 
      line.EndPoint = new AnnPoint(100, 100, AnnUnit.Pixel); 
      container.Objects.Add(line); 
 
      AnnRectangleObject rect = new AnnRectangleObject(); 
      rect.Name = "Rectangle1"; 
      rect.Pen = new AnnPen(Color.Blue, new AnnLength(1, AnnUnit.Pixel)); 
      rect.Brush = new AnnSolidBrush(Color.White); 
      rect.Bounds = new AnnRectangle(25, 25, 50, 50, AnnUnit.Pixel); 
      container.Objects.Add(rect); 
 
      // repaint the viewer 
      viewer.Invalidate(container.InvalidRectangle); 
   } 
 
   private void viewer_PostImagePaint(object sender, PaintEventArgs e) 
   { 
      // draw the container on top of the viewer 
      container.Draw(e.Graphics); 
   } 
 
   private void viewer_TransformChanged(object sender, EventArgs e) 
   { 
      // keep the container transform in synch with current viewer transformation (zoom, scroll, etc) 
      container.Transform = viewer.Transform.Clone(); 
   } 
 
   private void viewer_MouseMove(Object sender, MouseEventArgs e) 
   { 
      // perform hit-testing and update the status bar 
      AnnPoint pt = new AnnPoint(e.X, e.Y, AnnUnit.Pixel); 
      AnnObject obj = container.HitTest(pt, 2); 
      if (obj != null) 
         Text = string.Format("Type: {0}, Name: {1}, Value: {2}", obj.GetType().Name, obj.Name, obj.HitTest(pt, 2)); 
      else 
         Text = string.Empty; 
   } 
} 
 
 
 
 
private void AnnContainer_AnnContainer(string title) 
{ 
   MyForm1 form = new MyForm1(title); 
   form.ShowDialog(); 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Annotations 
Imports Leadtools.Codecs 
Imports Leadtools.WinForms 
 
Private Class MyForm1 : Inherits Form 
   Private myAnnContainer As AnnContainer 
   'AnnAutomationManager manager; 
   Private viewer As RasterImageViewer 
   Private codecs As RasterCodecs 
 
   Public Sub New(ByVal title As String) 
      Text = title 
      Size = New Size(500, 200) 
 
      viewer = New RasterImageViewer() 
      viewer.Dock = DockStyle.Fill 
      Controls.Add(viewer) 
      viewer.BringToFront() 
 
      ' load an image into the viewer 
      codecs = New RasterCodecs() 
      viewer.Image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp")) ' fix this path to an existing image file on your system 
 
      ' create and set up the container 
      myAnnContainer = New AnnContainer() 
      myAnnContainer.Bounds = New AnnRectangle(0, 0, viewer.ImageSize.Width, viewer.ImageSize.Height) 
      myAnnContainer.UnitConverter = New AnnUnitConverter(viewer.ImageDpiX, viewer.ImageDpiY) 
 
      ' subscribe to the view PostTransformPaint and TransformChanged events to be able to correctly draw the container 
      AddHandler viewer.PostImagePaint, AddressOf viewer_PostImagePaint 
      AddHandler viewer.TransformChanged, AddressOf viewer_TransformChanged 
      AddHandler viewer.MouseMove, AddressOf viewer_MouseMove 
 
      ' add a few objects to the container 
      Dim line As AnnLineObject = New AnnLineObject() 
      line.Name = "Line1" 
      line.Pen = New AnnPen(Color.Red, New AnnLength(1, AnnUnit.Pixel)) 
      line.StartPoint = New AnnPoint(0, 0, AnnUnit.Pixel) 
      line.EndPoint = New AnnPoint(100, 100, AnnUnit.Pixel) 
      myAnnContainer.Objects.Add(line) 
 
      Dim rect As AnnRectangleObject = New AnnRectangleObject() 
      rect.Name = "Rectangle1" 
      rect.Pen = New AnnPen(Color.Blue, New AnnLength(1, AnnUnit.Pixel)) 
      rect.Brush = New AnnSolidBrush(Color.White) 
      rect.Bounds = New AnnRectangle(25, 25, 50, 50, AnnUnit.Pixel) 
      myAnnContainer.Objects.Add(rect) 
 
      ' repaint the viewer 
      viewer.Invalidate(myAnnContainer.InvalidRectangle) 
   End Sub 
 
   Private Sub viewer_PostImagePaint(ByVal sender As Object, ByVal e As PaintEventArgs) 
      ' draw the container on top of the viewer 
      myAnnContainer.Draw(e.Graphics) 
   End Sub 
 
   Private Sub viewer_TransformChanged(ByVal sender As Object, ByVal e As EventArgs) 
      ' keep the container transform in synch with current viewer transformation (zoom, scroll, etc) 
      myAnnContainer.Transform = viewer.Transform.Clone() 
   End Sub 
 
   Private Sub viewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) 
      ' perform hit-testing and update the status bar 
      Dim pt As AnnPoint = New AnnPoint(e.X, e.Y, AnnUnit.Pixel) 
      Dim obj As AnnObject = myAnnContainer.HitTest(pt, 2) 
      If Not obj Is Nothing Then 
         Text = String.Format("Type: {0}, Name: {1}, Value: {2}", obj.GetType().Name, obj.Name, obj.HitTest(pt, 2)) 
      Else 
         Text = String.Empty 
      End If 
   End Sub 
End Class 
 
 
 
 
Private Sub AnnContainer_AnnContainer(ByVal title As String) 
   Dim form As MyForm1 = New MyForm1(title) 
   form.ShowDialog() 
End Sub 
 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Annotations Assembly