This documentation is archived and is not being maintained.

InkOverlayStrokesDeletingEventHandler Delegate

Represents the method that handles the StrokesDeleting event of an InkOverlay object.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

public delegate void InkOverlayStrokesDeletingEventHandler(
	Object sender,
	InkOverlayStrokesDeletingEventArgs e
)

Parameters

sender
Type: System.Object

The source InkOverlay object of this event.

e
Type: Microsoft.Ink.InkOverlayStrokesDeletingEventArgs

The InkOverlayStrokesDeletingEventArgs object that contains the event data.

The StrokesDeleting event occurs before Stroke objects are deleted from the InkOverlay.Ink property.

When you create an InkOverlayStrokesDeletingEventHandler delegate, you identify the method that handles 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 in managed code if you add an event handler.

This example demonstrates how you can subscribe to the StrokesDeleting event to enable you to restore the last deleted stroke.

When the StrokesDeleting event fires, the Stroke objects that are about to be deleted are saved.

private void mInkObject_StrokesDeleting(object sender, InkOverlayStrokesDeletingEventArgs e)
{
    // Store strokes for later undo. They must be stored in 
    // a separate Ink object. 
    mInkDeleted = new Ink();
    mInkDeleted.AddStrokesAtRectangle(e.StrokesToDelete, e.StrokesToDelete.GetBoundingBox());
}

In response to a user action such as clicking on a MenuItem, the Stroke objects that were previously deleted are added back to the original Ink object.

if (mInkDeleted != null)
{
    // Add strokes back.  (You need to use Ink.AddStrokesAtRectangle as opposed 
    // to Strokes.Add because you are dealing with two different Ink objects.)
    mInkObject.Ink.AddStrokesAtRectangle(mInkDeleted.Strokes, mInkDeleted.Strokes.GetBoundingBox());
    mInkDeleted = null;
    // For best performance, you should Invalidate the rectangle created by the  
    // bounding box (converted from ink space to pixel space).  For simplicity, 
    // we will just refresh the entire control.
    Refresh();
}

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.0
Show: