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()
ImageViewerRubberBandInteractiveMode derives from ImageViewerInteractiveMode and subscribes to the following events of the InteractiveService:
ImageViewerRubberBandInteractiveMode works as follows:
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.
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(); } }