Mouse cursor to use for the hit-test state of this ImageViewerInteractiveMode.
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)
}
The mouse cursor to use for the hit-test state of this ImageViewerInteractiveMode. The default value is null.
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.
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";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document