(Leadtools.Controls)

ImageViewerRubberBandInteractiveMode Class

Show in webframe
Example 





Members 
Draws a rectangle on the viewer.
Object Model
Syntax
public class ImageViewerRubberBandInteractiveMode : ImageViewerInteractiveMode 
Public Class ImageViewerRubberBandInteractiveMode 
   Inherits ImageViewerInteractiveMode
public sealed class ImageViewerRubberBandInteractiveMode : ImageViewerInteractiveMode 
@interface LTImageViewerRubberBandInteractiveMode : LTImageViewerInteractiveMode<NSCoding>
public class ImageViewerRubberBandInteractiveMode extends ImageViewerInteractiveMode
function Leadtools.Controls.ImageViewerRubberBandInteractiveMode()
Remarks

ImageViewerRubberBandInteractiveMode derives from ImageViewerInteractiveMode and subscribes to the following events of the InteractiveService:

ImageViewerRubberBandInteractiveMode works as follows:

  1. When InteractiveService.DragStarted is received, a temporary canvas element is created on top of the viewer, this canvas is used to draw the rubber band rectangle. The following properties are used to customize the appearance of this canvas: BorderColor, BorderThickness and the event RubberBandStarted is fired.
  2. When InteractiveService.DragDelta is received, the temporary canvas is moved to the current position and the event RubberBandDelta is fired.
  3. When InteractiveService.DragCompleted is received, the temporary canvas is removed and the event RubberBandCompleted is fired.

ImageViewerRubberBandInteractiveMode interactive mode does not perform any action on the viewer (besides drawing, moving and then removing the rectangle). It is up to the user to implement any custom operation required. For example, to select a region of interest on the image. ImageViewerZoomToInteractiveMode derives from ImageViewerRubberBandInteractiveMode and calls ImageViewer.ZoomToRect upon the receiving of RubberBandCompleted event.

Example
Copy Code  
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Controls;

[TestMethod]
public void ImageViewerRubberBandInteractiveModeExample()
{
   // Set rubber band as the default interactive mode
   ImageViewerRubberBandInteractiveMode rubberBandMode = new ImageViewerRubberBandInteractiveMode();
   // Customize it
   rubberBandMode.BorderColor = Windows.UI.Color.FromArgb(255, 255, 0, 0);
   rubberBandMode.BorderDashArray = 4;
   rubberBandMode.BorderThickness = 2;
   rubberBandMode.BorderDashOffset = 2;
   // Hook to its RubberBandCompleted event
   rubberBandMode.RubberBandCompleted += rubberBandMode_RubberBandCompleted;

   _viewer.DefaultInteractiveMode = rubberBandMode;

   _infoLabel.Text = "Draw a blue with yellow border rectangle on the image";
}

// Called by the base class when the mode is stopped
void rubberBandMode_RubberBandCompleted(object sender, ImageViewerRubberBandEventArgs e)
{
   // Get the final rectangle
   LeadRectD rect = LeadRectDHelper.FromLTRB(e.Point1.X, e.Point1.Y, e.Point2.X, e.Point2.Y);

   // Get the visible rect of the _viewer
   Rect imageControlRect = _viewer.ImageControlRectangle(true);
   LeadRectD visibleRect = LeadRectDHelper.FromLTRB(imageControlRect.Left, imageControlRect.Top, imageControlRect.Right, imageControlRect.Bottom);

   // Interset this rectangle with the visible area of the _viewer
   rect = LeadRectDHelper.Intersect(rect, visibleRect);

   // Make sure it has some width and height and not too small
   if (rect.Width > 0 && rect.Height > 0)
   {
      // Get the viewer canvas
      Canvas viewerCanvas = _viewer.InteractiveModeCanvas;

      double x = rect.X;
      double y = rect.Y;
      double width = rect.Width;
      double height = rect.Height;

      // Add rectangle shape filled with Blue
      Rectangle rectShape = new Rectangle
      {
         Width = rect.Width,
         Height = rect.Height,
         Fill = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 0, 0, 255)),
         StrokeThickness = 2
      };
      Canvas.SetLeft(rectShape, x);
      Canvas.SetTop(rectShape, y);
      viewerCanvas.Children.Add(rectShape);

      // Invalidate the _viewer (so it draws the back canvas into the foreground)
      _viewer.Invalidate();
   }
}
Requirements

Target Platforms

See Also

Reference

ImageViewerRubberBandInteractiveMode Members
Leadtools.Controls Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.