LEADTOOLS WPF and Silverlight (Leadtools.Windows.Controls assembly)
LEAD Technologies, Inc

InteractiveUserRectangle Event

Example 





Occurs when the user performs user-defined interactive drawing of a rectangle. .NET support Silverlight support
Syntax
public event EventHandler<RectangleInteractiveEventArgs> InteractiveUserRectangle
'Declaration
 
Public Event InteractiveUserRectangle As EventHandler(Of RectangleInteractiveEventArgs)
'Usage
 
Dim instance As ImageViewer
Dim handler As EventHandler(Of RectangleInteractiveEventArgs)
 
AddHandler instance.InteractiveUserRectangle, handler
public event EventHandler<RectangleInteractiveEventArgs> InteractiveUserRectangle
add_InteractiveUserRectangle(function(sender, e))
remove_InteractiveUserRectangle(function(sender, e))

public:
event EventHandler<RectangleInteractiveEventArgs^>^ InteractiveUserRectangle
Event Data

The event handler receives an argument of type RectangleInteractiveEventArgs containing data related to this event. The following RectangleInteractiveEventArgs properties provide information specific to this event.

PropertyDescription
Bounds Gets the bounds location for the current interactive rectangle mode. .NET support Silverlight support
Cancel (Inherited from Leadtools.Windows.Controls.InteractiveEventArgs)Gets or sets a value indicating whether the interactive mode should be canceled. .NET support Silverlight support
Handled (Inherited from System.Windows.RoutedEventArgs) 
OriginalSource (Inherited from System.Windows.RoutedEventArgs) 
RoutedEvent (Inherited from System.Windows.RoutedEventArgs) 
Source (Inherited from System.Windows.RoutedEventArgs) 
Status (Inherited from Leadtools.Windows.Controls.InteractiveEventArgs)Gets the current status of the interactive mode. .NET support Silverlight support
Remarks

Occurs when the InteractiveMode property is set to InteractiveMode.UseRectangle.

Use the InteractiveMode.UserRectangle and InteractiveUserRectangle to draw a rectangle on the surface of the control. The ImageViewer object will handle mouse cursor down and up events, mouse movement, canceling (through the ESC key or when the control loses the focus) and clipping.

The InteractiveUserRectangle event will occur every time the user moves the mouse or clicks any of the buttons with the corresponding data in the RectangleInteractiveEventArgs of the event.

You can use the user-defined rectangle interactive mode to perform additional interactive operations on the viewer not handled by any of the pre-defined InteractiveMode.

You can use the BoundsToImageCoordinates and BoundsFromImageCoordinates methods to convert a rectangle between image and control coordinates.

Example
Copy CodeCopy Code  
Public Sub BitmapSourceViewer_IsInteractiveModeBusy(ByVal viewer As ImageViewer)
    AddHandler viewer.InteractiveUserRectangle, AddressOf viewer_InteractiveUserRectangle
    viewer.InteractiveMode = InteractiveMode.UserRectangle

    MessageBox.Show("Interactive mode set to draw a rectangular geometry." & Constants.vbLf & "If mouse is dragged up or to the left, interactive mode is cancelled")
End Sub

Private Sub viewer_InteractiveUserRectangle(ByVal sender As Object, ByVal e As RectangleInteractiveEventArgs)
    Console.WriteLine("" & e.Status)
    Dim viewer As ImageViewer = TryCast(sender, ImageViewer)

    Dim ee As RectangleInteractiveEventArgs = New RectangleInteractiveEventArgs(e.Status, e.Bounds)
    If e.Status = InteractiveModeStatus.End Then
        e.Cancel = True
        If (Not viewer.IsInteractiveModeBusy) Then
            MessageBox.Show("Interactive mode (Rectangular geometry) cancelled")
            viewer.InteractiveMode = InteractiveMode.None
        End If
    End If

    Console.WriteLine("" & e.Bounds.Left & ", " & e.Bounds.Top & ", " & e.Bounds.Right & ", " & e.Bounds.Bottom)
End Sub
public void BitmapSourceViewer_IsInteractiveModeBusy(ImageViewer viewer)
{
   viewer.InteractiveUserRectangle += new EventHandler<RectangleInteractiveEventArgs>(viewer_InteractiveUserRectangle);
   viewer.InteractiveMode = InteractiveMode.UserRectangle;

   MessageBox.Show("Interactive mode set to draw a rectangular geometry.\nIf mouse is dragged up or to the left, interactive mode is cancelled");
}

void viewer_InteractiveUserRectangle(object sender, RectangleInteractiveEventArgs e)
{
   Console.WriteLine(@"" + e.Status);
   ImageViewer viewer = sender as ImageViewer;

   RectangleInteractiveEventArgs ee = new RectangleInteractiveEventArgs(e.Status, e.Bounds);
   if (e.Status == InteractiveModeStatus.End)
   {
      e.Cancel = true;
      if (!viewer.IsInteractiveModeBusy)
      {
         MessageBox.Show("Interactive mode (Rectangular geometry) cancelled");
         viewer.InteractiveMode = InteractiveMode.None;
      }
   }

   Console.WriteLine(@"" + e.Bounds.Left + ", " + e.Bounds.Top + ", " + e.Bounds.Right + ", " + e.Bounds.Bottom);
}
public void BitmapSourceViewer_IsInteractiveModeBusy(ImageViewer viewer)
{
   viewer.InteractiveUserRectangle += new EventHandler<RectangleInteractiveEventArgs>(viewer_InteractiveUserRectangle);
   viewer.InteractiveMode = InteractiveMode.UserRectangle;

   MessageBox.Show("Interactive mode set to draw a rectangular geometry.\nIf mouse is dragged up or to the left, interactive mode is cancelled");
}

void viewer_InteractiveUserRectangle(object sender, RectangleInteractiveEventArgs e)
{
   Console.WriteLine(@"" + e.Status);
   ImageViewer viewer = sender as ImageViewer;

   RectangleInteractiveEventArgs ee = new RectangleInteractiveEventArgs(e.Status, e.Bounds);
   if (e.Status == InteractiveModeStatus.End)
   {
      e.Cancel = true;
      if (!viewer.IsInteractiveModeBusy)
      {
         MessageBox.Show("Interactive mode (Rectangular geometry) cancelled");
         viewer.InteractiveMode = InteractiveMode.None;
      }
   }

   Console.WriteLine(@"" + e.Bounds.Left + ", " + e.Bounds.Top + ", " + e.Bounds.Right + ", " + e.Bounds.Bottom);
}
Public Sub BitmapSourceViewer_IsInteractiveModeBusy(ByVal viewer As ImageViewer)
   AddHandler viewer.InteractiveUserRectangle, AddressOf viewer_InteractiveUserRectangle
   viewer.InteractiveMode = InteractiveMode.UserRectangle

   MessageBox.Show("Interactive mode set to draw a rectangular geometry." & Constants.vbLf & _
                   "If mouse is dragged up or to the left, interactive mode is cancelled")
End Sub

Private Sub viewer_InteractiveUserRectangle(ByVal sender As Object, ByVal e As RectangleInteractiveEventArgs)
   Console.WriteLine("" & e.Status)
   Dim viewer As ImageViewer = TryCast(sender, ImageViewer)

   Dim ee As RectangleInteractiveEventArgs = New RectangleInteractiveEventArgs(e.Status, e.Bounds)
   If e.Status = InteractiveModeStatus.End Then
      e.Cancel = True
      If (Not viewer.IsInteractiveModeBusy) Then
         MessageBox.Show("Interactive mode (Rectangular geometry) cancelled")
         viewer.InteractiveMode = InteractiveMode.None
      End If
   End If

   Console.WriteLine("" & e.Bounds.Left & ", " & e.Bounds.Top & ", " & e.Bounds.Right & ", " & e.Bounds.Bottom)
End Sub
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

ImageViewer Class
ImageViewer Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.