←Select platform

ImageViewerSelectItemsInteractiveMode Class

Summary

Allows selection of items using the mouse, touch or keyboard.

Syntax
C#
VB
C++
public class ImageViewerSelectItemsInteractiveMode : ImageViewerRubberBandInteractiveMode 
Public Class ImageViewerSelectItemsInteractiveMode 
   Inherits ImageViewerRubberBandInteractiveMode 
public ref class ImageViewerSelectItemsInteractiveMode : ImageViewerRubberBandInteractiveMode 
Remarks

ImageViewerSelectItemsInteractiveMode derives from ImageViewerRubberBandInteractiveMode and subscribe to these extra events:

In a break from normal behavior, InteractiveEventArgs.IsHandled is explicitly set to false when a valid rubberband operation starts in order to allow fall-through to other interactive modes that may handle scrolling.

If IsKeyboardEnabled is true and a valid key is pressed (Left, Up, Right, Down, PageUp, PageDown, Home, or End), the InteractiveEventArgs.IsHandled will be set to true regardless of whether selections change.

This mode allows you to use the mouse, touch or keyboard to select items in the image viewer. Use this interactive mode to create an image viewer that acts like a Windows Explorer view in thumbnail modes.

The SelectionMode property determines if one or multiple items can be selected. Items are selected by modifying the ImageViewerItem.IsSelected property (refer to Image Viewer Items).

If the viewer was set up with a different style for selected items, then the UI will be updated accordingly. Refer to Image Viewer Appearance for more information.

If SelectionMode is Single, then this mode will work as follows:

  • Clicking on an item will select it. The previously selected item, if any, will be de-selected.

  • When IsKeyboardEnabled is true, using the cursor, page up/down, home and end keys will move the selection in the items in a grid fashion inside the current ViewLayout. For example, pressing the left key will select the item to the left of the currently selected one while pressing up will select the item above, and so forth. The previously selected item, if any, will be de-selected.

  • Clicking on an area outside any item will be ignored.

If SelectionMode is Multi, then this mode will work as follows:

  • Clicking on an item will select it, if the current MultiSelectKeyModifier is pressed (by default it is CTRL), then the previously selected item(s) state will not change. If the key was not pressed, the previously selected item(s) will be de-selected.

  • When IsKeyboardEnabled is true, using the keys mentioned above will work in the same manner except that MultiSelectKeyModifier is also used to keep or remove the selection state of the previously selected items.

  • Clicking on an area outside any item and dragging with the mouse will start drawing a rubber band selection rectangle, when this is done, all the items that intersect with this rectangle will be selected. MultiSelectKeyModifier is also used as before. If no items intersect with the rubber band rectangle and MultiSelectKeyModifier was not pressed, then all the items are de-selected.

If SelectionMode is None, then this interactive mode does not change the item's selection state. Hover will continue working.

ImageViewerSelectItemsInteractiveMode will also update the hover state of the items in platforms where a mouse is supported. When the mouse is over an item, the ImageViewerItem.IsHovered will be set to true and if the viewer was set up with different styles for hovered items, the UI is updated. Moving out of an item area will set ImageViewerItem.IsHovered back to false.

CanSelectDisabledItems and CanHoverDisabledItems controls how the mode treats items that are disabled (the value of ImageViewerItem.IsEnabled is false). By default, these items' selection and hover states cannot be changed. By setting CanSelectDisabledItems or CanHoverDisabledItems to true, disabled items can be selected/deselected or hovered/unhovered accordingly.

The mode sets the value of ImageViewerInteractiveMode.WorkOnBounds to false and AutoItemMode to ImageViewerAutoItemMode.Never since it does not work on any specific items. IsDragMouseWheelEnabled is set to false as well to disable firing drag events using the mouse wheel.

Note: For optimization purposes, this mode will use ImageViewerItems.Select to select and unselect items in a bulk instead of setting the ImageViewerItem.IsSelected property directly.

For more information, refer to Image Viewer Interactive Modes, Image Viewer Items and Image Viewer Appearance.

Example
C#
VB
using Leadtools; 
using Leadtools.Controls; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
_imageViewer.InteractiveModes.BeginUpdate(); 
_imageViewer.InteractiveModes.Add(new ImageViewerSelectItemsInteractiveMode { IsEnabled = false }); 
_imageViewer.InteractiveModes.EndUpdate(); 
 
foreach (var interactiveMode in _imageViewer.InteractiveModes) 
{ 
   ImageViewerSelectItemsInteractiveMode selectionMode = interactiveMode as ImageViewerSelectItemsInteractiveMode; 
   if (selectionMode != null) 
   { 
      selectionMode.SelectionMode = ImageViewerSelectionMode.Multi; 
   } 
} 
Imports Leadtools 
Imports Leadtools.Controls 
Imports Leadtools.Codecs 
Imports Leadtools.Drawing 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
 
_imageViewer.InteractiveModes.BeginUpdate() 
Dim mode As New ImageViewerSelectItemsInteractiveMode 
mode.IsEnabled = True 
_imageViewer.InteractiveModes.Add(mode) 
_imageViewer.InteractiveModes.EndUpdate() 
 
For Each interactiveMode As ImageViewerInteractiveMode In _imageViewer.InteractiveModes 
   Dim selectionMode As ImageViewerSelectItemsInteractiveMode = TryCast(interactiveMode, ImageViewerSelectItemsInteractiveMode) 
   If Not selectionMode Is Nothing Then 
      selectionMode.SelectionMode = ImageViewerSelectionMode.Multi 
   End If 
Next interactiveMode 
Requirements
Target Platforms
Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Controls Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.