←Select platform

Offset Property

Summary

Optional offset to apply to the spy glass position.

Syntax
C#
Objective-C
C++/CLI
public virtual LeadPoint Offset { get; set; } 
@property (nonatomic, assign) CGPoint offset; 
public:  
   virtual property LeadPoint^ Offset 
   { 
      LeadPoint^ get() 
      void set(LeadPoint^ value) 
   } 

Property Value

Optional offset to apply to the spy glass position in pixels. The default value is 0,0.

Remarks

By default, the spy glass will show centered around the current position. Use Offset to move the spy glass up, down, left or right by any given offset.

When Offset is set to a value other than 0,0, then Use EnsureVisible to stop the spy glass from moving outside the image area in the viewer.

This is useful for touch devices because the area under the user's finger obscures the view.

Example
C#
using Leadtools; 
using Leadtools.Controls; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
public ImageViewerForm _form = new ImageViewerForm(); 
public ImageViewer _imageViewer; 
 
public void ImageViewerSpyGlassInteractiveModeExample() 
{ 
   // Get the ImageViewer control from the form 
   _imageViewer = _form.ImageViewer; 
 
   // Load an image 
   using (var codecs = new RasterCodecs()) 
      _imageViewer.Image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp")); 
 
   // Create the spyglass interactive mode 
   ImageViewerSpyGlassInteractiveMode spyGlass = new ImageViewerSpyGlassInteractiveMode(); 
   spyGlass.AutoItemMode = ImageViewerAutoItemMode.AutoSet; 
   spyGlass.BackgroundBrush = new SolidBrush(Color.FromArgb(128, Color.Yellow)); 
   spyGlass.BorderBackPen = new Pen(Color.Red); 
   spyGlass.BorderPen = new Pen(Color.Blue) { DashPattern = new float[] { 4.0F, 2.0F, 1.0F, 3.0F }}; 
   spyGlass.Crosshair = ImageViewerSpyGlassCrosshair.Fine; 
   spyGlass.CrosshairPen = new Pen(Color.Green); 
   spyGlass.EnsureVisible = false; 
   spyGlass.Offset = new LeadPoint(0, 0); 
   spyGlass.HideCursorWhileWorking = true; 
   spyGlass.IdleCursor = Cursors.Cross; 
   spyGlass.RoundRectangleRadius = new LeadSize(25, 25); 
   spyGlass.Shape = ImageViewerSpyGlassShape.RoundRectangle; 
   spyGlass.Size = new LeadSize(200, 200); 
 
   // Get inverted copy of the RasterImage in the Viewer control 
   RasterImage invertedRasterImage = _imageViewer.Image.Clone(); 
   InvertCommand invertCommand = new InvertCommand(); 
   invertCommand.Run(invertedRasterImage); 
 
   // Overlay the inverted image on the spy glass 
   spyGlass.DrawImage += (object sender, ImageViewerSpyGlassDrawImageEventArgs e) => 
   { 
      Image img = RasterImageConverter.ChangeToImage(invertedRasterImage, new ChangeToImageOptions()); 
      e.Context.DrawImage(img, Point.Empty); 
      _form.Text = 
      $"Destination Rectangle: (" + 
      $"{e.DestinationRectangle.X}, {e.DestinationRectangle.Y}, {e.DestinationRectangle.Width}, {e.DestinationRectangle.Height}), " + 
      $"Offset: {e.Offset.X}, {e.Offset.Y}"; 
   }; 
 
   // Add spyglass interactive mode 
   _imageViewer.InteractiveModes.BeginUpdate(); 
   _imageViewer.InteractiveModes.Add(spyGlass); 
   _imageViewer.InteractiveModes.EndUpdate(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Controls Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.