Compartir a través de


InkPicture.StrokesDeleting (Evento)

Actualización: noviembre 2007

Se produce antes de que los objetos Stroke se eliminen de la propiedad Ink del control InkPicture.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Event StrokesDeleting As InkOverlayStrokesDeletingEventHandler
'Uso
Dim instance As InkPicture
Dim handler As InkOverlayStrokesDeletingEventHandler

AddHandler instance.StrokesDeleting, handler
public event InkOverlayStrokesDeletingEventHandler StrokesDeleting
public:
 event InkOverlayStrokesDeletingEventHandler^ StrokesDeleting {
    void add (InkOverlayStrokesDeletingEventHandler^ value);
    void remove (InkOverlayStrokesDeletingEventHandler^ value);
}
/** @event */
public void add_StrokesDeleting (InkOverlayStrokesDeletingEventHandler value)
/** @event */
public void remove_StrokesDeleting (InkOverlayStrokesDeletingEventHandler value)
JScript no admite eventos.

Comentarios

El controlador de eventos recibe un argumento de tipo InkOverlayStrokesDeletingEventArgs que contiene datos sobre este evento.

Al crear un delegado de InkOverlayStrokesDeletingEventHandler, se identifica el método que controla el evento. Para asociarlo al controlador de eventos, se debe agregar al evento una instancia del delegado. Siempre que se produce el evento, se llama a su controlador, a menos que se quite el delegado. Para mejorar el rendimiento, el interés del evento predeterminado está desactivado, pero se activa automáticamente si se agrega un controlador de eventos.

Ejemplos

En este ejemplo se muestra cómo puede suscribirse al evento StrokesDeleting para poder restaurar el último trazo eliminado.

Cuando se desencadena el evento StrokesDeleting, se guardan los objetos Stroke que están a punto de ser eliminados.

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());
}

En respuesta a una acción del usuario, como hacer clic en un MenuItem, los objetos Stroke que se eliminaron anteriormente se agregan de nuevo al objeto Ink original.

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();
}

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

InkPicture (Clase)

InkPicture (Miembros)

Microsoft.Ink (Espacio de nombres)

InkOverlayStrokesDeletingEventArgs

InkPicture.Ink

InkPicture.StrokesDeleted