Condividi tramite


InkOverlay.SelectionMoved Event

InkOverlay.SelectionMoved Event

Occurs when the position of the current selection has changed, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property.

Definition

Visual Basic .NET Public Event SelectionMoved As InkOverlaySelectionMovedEventHandler
C# public event InkOverlaySelectionMovedEventHandler SelectionMoved;
Managed C++ public: __event InkOverlaySelectionMovedEventHandler SelectionMoved;

Remarks

The event handler receives an argument of type InkOverlaySelectionMovedEventArgs that contains data about this event.

When you create an InkOverlaySelectionMovedEventHandler delegate, you identify the method that will handle the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For performance reasons, the default event interest is off but is turned on automatically if you add an event handler.

To get the old bounding rectangle of the collection of strokes that has been moved, use the OldSelectionBoundingRect of the InkOverlaySelectionMovedEventArgs object. To get the new bounding rectangle, call the Selection.GetBoundingBox method.

Examples

[C#]

This C# example demonstrates how to affect a selection after it has been moved. If it has been moved so that any of it is off the left or top side of the control, then it moves the selection back to its original position.

using Microsoft.Ink;
//...
  theInkOverlay.SelectionMoved += new InkOverlaySelectionMovedEventHandler(theInkOverlay_SelectionMoved);
//...
  private void theInkOverlay_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e)
  {
       Rectangle newBounds = theInkOverlay.Selection.GetBoundingBox();
       // Check if we have gone off the left or top sides of the window.
       if (newBounds.Left < 0 || newBounds.Top < 0)
       {
           // Move to back to original spot
           theInkOverlay.Selection.Move(e.OldSelectionBoundingRect.Left - newBounds.Left,
               e.OldSelectionBoundingRect.Top - newBounds.Top);

           // Trick to insure that selection handles are updated
           theInkOverlay.Selection = theInkOverlay.Selection;
       }
   }
//...

[Visual Basic .NET]

This Microsoft® Visual Basic® .NET example demonstrates how to affect a selection after it has been moved. If it has been moved so that any of it is off the left or top side of the control, then it moves the selection back to its original position.

Imports Microsoft.Ink
'...
    Private WithEvents theInkOverlay As InkOverlay
'...
    Private Sub theInkOverlay_SelectionMoved(ByVal sender As Object, _
    ByVal e As Microsoft.Ink.InkOverlaySelectionMovedEventArgs) Handles theInkOverlay.SelectionMoved
        Dim newBounds As Rectangle = theInkOverlay.Selection.GetBoundingBox()
        'Check if we have gone off the left or top sides of the window.
        If newBounds.Left < 0 Or newBounds.Top < 0 Then
            'Move to back to original spot
            theInkOverlay.Selection.Move(e.OldSelectionBoundingRect.Left - newBounds.Left, _
                e.OldSelectionBoundingRect.Top - newBounds.Top)

            'Trick to insure that selection handles are updated
            theInkOverlay.Selection = theInkOverlay.Selection
        End If
    End Sub
'...

See Also