Imports Leadtools.WinForms
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Private Class MyRasterMagnifyGlass : Inherits RasterMagnifyGlass
   Public Sub New()
      Shape = RasterMagnifyGlassShape.Border3D
   End Sub
   Protected Overrides Sub OnPaintBorder(ByVal graphics As Graphics, ByVal centerPoint As Point)
      Dim width As Integer = (Size.Width - 2) \ 2
      Dim height As Integer = (Size.Height - 2) \ 2
      Dim rc As Rectangle = New Rectangle(centerPoint.X - width, centerPoint.Y - height, 2 * width, 2 * height)
      graphics.DrawRectangle(Pens.Blue, rc)
   End Sub
   Protected Overrides Sub OnPaintCrosshair(ByVal graphics As Graphics, ByVal centerPoint As Point)
      Dim width As Integer = (Size.Width - 2) \ 2
      Dim height As Integer = (Size.Height - 2) \ 2
      Dim p1 As Point = New Point(centerPoint.X - width, centerPoint.Y - height)
      Dim p2 As Point = New Point(centerPoint.X + width, centerPoint.Y + height)
      graphics.DrawLine(Pens.Red, p1, p2)
      p1 = New Point(centerPoint.X + width, centerPoint.Y - height)
      p2 = New Point(centerPoint.X - width, centerPoint.Y + height)
      graphics.DrawLine(Pens.Red, p1, p2)
   End Sub
End Class
Private Sub viewer_MagnifyGlassChanged(ByVal sender As Object, ByVal e As EventArgs)
   MessageBox.Show("Custom Magnify Glass being used -- red X for crosshair, blue for border")
End Sub
Public Sub RasterImageViewer_MagnifyGlass(ByVal viewer As RasterImageViewer)
   AddHandler viewer.MagnifyGlassChanged, AddressOf viewer_MagnifyGlassChanged
   viewer.MagnifyGlass = New MyRasterMagnifyGlass()
   viewer.InteractiveMode = RasterViewerInteractiveMode.MagnifyGlass
   RemoveHandler viewer.MagnifyGlassChanged, AddressOf viewer_MagnifyGlassChanged
End Sub
             
   
     
            using Leadtools.WinForms;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Color;
using Leadtools.Drawing;
class MyRasterMagnifyGlass : RasterMagnifyGlass
{
   public MyRasterMagnifyGlass()
   {
      Shape = RasterMagnifyGlassShape.Border3D;
   }
   protected override void OnPaintBorder(Graphics graphics, Point centerPoint)
   {
      int width = (Size.Width - 2) / 2;
      int height = (Size.Height - 2) / 2;
      Rectangle rc = new Rectangle(centerPoint.X - width, centerPoint.Y - height, 2*width, 2*height);
      graphics.DrawRectangle(Pens.Blue, rc);
   }
   protected override void OnPaintCrosshair(Graphics graphics, Point centerPoint)
   {
      int width = (Size.Width - 2) / 2;
      int height = (Size.Height - 2) / 2;
      Point p1 = new Point(centerPoint.X - width, centerPoint.Y - height);
      Point p2 = new Point(centerPoint.X + width, centerPoint.Y + height);
      graphics.DrawLine(Pens.Red, p1, p2);
      p1 = new Point(centerPoint.X + width, centerPoint.Y - height);
      p2 = new Point(centerPoint.X - width, centerPoint.Y + height);
      graphics.DrawLine(Pens.Red, p1, p2);
   }
}
private void viewer_MagnifyGlassChanged(object sender, EventArgs e)
{
   MessageBox.Show("Custom Magnify Glass being used -- red X for crosshair, blue for border");
}
public void RasterImageViewer_MagnifyGlass(RasterImageViewer viewer)
{
   viewer.MagnifyGlassChanged+= new EventHandler(viewer_MagnifyGlassChanged);
   viewer.MagnifyGlass = new MyRasterMagnifyGlass();
   viewer.InteractiveMode = RasterViewerInteractiveMode.MagnifyGlass;
   viewer.MagnifyGlassChanged -= new EventHandler(viewer_MagnifyGlassChanged);
}