Freigeben über


InkOverlayStrokesDeletingEventHandler-Delegat

Stellt die Methode dar, die das StrokesDeleting-Ereignis eines InkOverlay-Objekts behandelt.

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

Syntax

'Declaration
Public Delegate Sub InkOverlayStrokesDeletingEventHandler ( _
    sender As Object, _
    e As InkOverlayStrokesDeletingEventArgs _
)
'Usage
Dim instance As New InkOverlayStrokesDeletingEventHandler(AddressOf HandlerMethod)
public delegate void InkOverlayStrokesDeletingEventHandler(
    Object sender,
    InkOverlayStrokesDeletingEventArgs e
)
public delegate void InkOverlayStrokesDeletingEventHandler(
    Object^ sender, 
    InkOverlayStrokesDeletingEventArgs^ e
)
/** @delegate */
public delegate void InkOverlayStrokesDeletingEventHandler(
    Object sender,
    InkOverlayStrokesDeletingEventArgs e
)
JScript unterstützt keine Delegaten.

Parameter

Hinweise

Das StrokesDeleting-Ereignis tritt ein, bevor Stroke-Objekte aus der InkOverlay.Ink-Eigenschaft gelöscht werden.

Beim Erstellen eines InkOverlayStrokesDeletingEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Aus Leistungsgründen ist das Standardinteresse an einem Ereignis deaktiviert, es wird jedoch automatisch im verwalteten Code aktiviert, wenn Sie einen Ereignishandler hinzufügen.

Beispiele

In diesem Beispiel wird veranschaulicht, wie Sie das StrokesDeleting-Ereignis abonnieren können, um den zuletzt gelöschten Strich wiederherstellen zu können.

Wenn das StrokesDeleting-Ereignis ausgelöst wird, werden die Stroke-Objekte, die gerade gelöscht werden sollten, gespeichert.

Private Sub mInkObject_StrokesDeleting(ByVal sender As Object, ByVal e As InkOverlayStrokesDeletingEventArgs)
    ' Store strokes for later undo. They must be stored in
    ' a separate Ink object. 
    mInkDeleted = New Ink()
    mInkDeleted.AddStrokesAtRectangle(e.StrokesToDelete, e.StrokesToDelete.GetBoundingBox())
End Sub
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());
}

Als Reaktion auf eine Benutzeraktion (z. B. Klicken auf ein MenuItem) werden die zuvor gelöschten Stroke-Objekte wieder dem ursprünglichen Ink-Objekt hinzugefügt.

If Not mInkDeleted Is Nothing Then
    ' 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 = Nothing
    ' 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()
End If
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();
}

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

Microsoft.Ink-Namespace

InkOverlay.Ink