←Select platform

HitTestState Property

Summary

Indicates this mode hit-test state.

Syntax
C#
C++/CLI
public virtual bool HitTestState { get; set; } 
public:  
   virtual property bool HitTestState 
   { 
      bool get() 
      void set(bool value) 
   } 

Property Value

true if this mode hit-test state is on, otherwise; false.

Remarks

HitTestState can be used to create an interactive mode that works over an area of interest in the viewer.

Example

Run the example. The cursor changes to a crosshair when it is over the red rectangles.

Start with the ImageViewer example, remove all the code inside the example function (search for the "// TODO: add example code here" comment) and insert the following code:

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 ImageViewerInteractiveModeHitTestStateCursorExample() 
{ 
   // Get the form's ImageViewer control 
   _imageViewer = _form.ImageViewer; 
 
   // Set the view layout to display vertical items 
   _imageViewer.ViewLayout = new ImageViewerVerticalViewLayout(); 
 
   // Add 4 items to the viewer 
   using (var codecs = new RasterCodecs()) 
   { 
      for (var page = 1; page <= 4; page++) 
      { 
         var item = new ImageViewerItem(); 
         var fileName = Path.Combine(LEAD_VARS.ImagesDir, string.Format("ocr{0}.tif", page)); 
 
         // Create a thumbnail from the image 
         using (var image = codecs.Load(fileName, page)) 
            item.Image = image.CreateThumbnail(180, 180, 24, RasterViewPerspective.TopLeft, RasterSizeFlags.Resample); 
 
         item.Text = string.Format("Item {0}", page - 1); 
         _imageViewer.Items.Add(item); 
      } 
   } 
 
   // Initialize and add the custom HitTestInteractiveMode 
   HitTestInteractiveMode hitTest = new HitTestInteractiveMode() { 
      IsEnabled = true  
   }; 
   _imageViewer.InteractiveModes.BeginUpdate(); 
   _imageViewer.InteractiveModes.Add(hitTest); 
   _imageViewer.InteractiveModes.EndUpdate(); 
} 
 
// Custom InteractiveMode that checks if the cursor is over an item and changes the cursor 
private class HitTestInteractiveMode : ImageViewerInteractiveMode 
{ 
   public HitTestInteractiveMode() 
   {  
      // Auto sets the affected Item object 
      this.AutoItemMode = ImageViewerAutoItemMode.AutoSet; 
 
      // Set the Hit Test cursor to be used when the cursor is over the Item 
      this.HitTestStateCursor = Cursors.Cross; 
   } 
 
   public override string Name 
   { 
      get { return "HitTest"; } 
   } 
 
   public override int Id 
   { 
      get { return ImageViewerInteractiveMode.UserModeId; } 
   } 
 
   public override void Start(ImageViewer imageViewer) 
   { 
      base.Start(imageViewer); 
      var service = base.InteractiveService; 
      service.Move += new EventHandler<InteractiveEventArgs>(service_Move); 
   } 
 
   public override void Stop(ImageViewer imageViewer) 
   { 
      if (IsStarted) 
      { 
         var service = base.InteractiveService; 
         service.Move -= new EventHandler<InteractiveEventArgs>(service_Move); 
         base.Stop(imageViewer); 
      } 
   } 
 
   private void service_Move(object sender, InteractiveEventArgs e) 
   { 
      // Set the item 
      this.UpdateAutoItem(this.ImageViewer, e.Position); 
 
      if (this.Item == null) 
      { 
         // Cursor is not over an item 
         this.HitTestState = false; 
         return; 
      } 
 
      // Cursor is over an item 
      this.HitTestState = true; 
      e.IsHandled = true; 
   } 
} 
 
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.