←Select platform

HitTestStateCursor Property

Summary

Mouse cursor to use for the hit-test state of this ImageViewerInteractiveMode.

Syntax
C#
C++/CLI
public virtual Cursor HitTestStateCursor { get; set; } 
public:  
   virtual property System::Windows::Forms::Cursor^ HitTestStateCursor 
   { 
      System::Windows::Forms::Cursor^ get() 
      void set(System::Windows::Forms::Cursor^ value) 
   } 

Property Value

The mouse cursor to use for the hit-test state of this ImageViewerInteractiveMode. The default value is null.

Remarks

HitTestState and HitTestStateCursor can be used with interactive modes that subscribe to the InteractiveService.Move event and indicate that the mousse cursor is over an area of interest by updating the state and changing the mouse cursor.

The cursor is set into the ImageViewer control. Also, the cursor will be set in any controls added by the user to the InteractiveService.UserControls collection.

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 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.