Indicates this mode hit-test state.
public virtual bool HitTestState { get; set; } public:virtual property bool HitTestState{bool get()void set(bool value)}
true if this mode hit-test state is on, otherwise; false.
HitTestState can be used to create an interactive mode that works over an area of interest in the viewer.
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:
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 viewerusing (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 imageusing (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 HitTestInteractiveModeHitTestInteractiveMode 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 cursorprivate class HitTestInteractiveMode : ImageViewerInteractiveMode{public HitTestInteractiveMode(){// Auto sets the affected Item objectthis.AutoItemMode = ImageViewerAutoItemMode.AutoSet;// Set the Hit Test cursor to be used when the cursor is over the Itemthis.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 itemthis.UpdateAutoItem(this.ImageViewer, e.Position);if (this.Item == null){// Cursor is not over an itemthis.HitTestState = false;return;}// Cursor is over an itemthis.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
