Compartir a través de


IncrementalHitTester Clase

Definición

Realiza dinámicamente pruebas de posicionamiento con un objeto Stroke.

public ref class IncrementalHitTester abstract
public abstract class IncrementalHitTester
type IncrementalHitTester = class
Public MustInherit Class IncrementalHitTester
Herencia
IncrementalHitTester
Derivado

Ejemplos

En el ejemplo siguiente se muestra cómo agregar puntos a IncrementalHitTester cuando el usuario introduce datos con el lápiz óptico. En el ejemplo se incluye un StrokeHit controlador de eventos que borra la parte de que Stroke el usuario interseca. Para crear un control que permita al usuario borrar la entrada de lápiz, vea Cómo: Borrar entrada de lápiz en un control personalizado.


// Prepare to collect stylus packets. Get the 
// IncrementalHitTester from the InkPresenter's 
// StrokeCollection and subscribe to its StrokeHitChanged event.
protected override void OnStylusDown(StylusDownEventArgs e)
{
    base.OnStylusDown(e);

    EllipseStylusShape eraserTip = new EllipseStylusShape(3, 3, 0);
    eraseTester = 
        presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip);
    eraseTester.StrokeHit += new StrokeHitEventHandler(eraseTester_StrokeHit);
    eraseTester.AddPoints(e.GetStylusPoints(this));
}

// Collect the StylusPackets as the stylus moves.
protected override void OnStylusMove(StylusEventArgs e)
{
    if (eraseTester.IsValid)
    {
        eraseTester.AddPoints(e.GetStylusPoints(this));
    }
}

// Unsubscribe from the StrokeHitChanged event when the
// user lifts the stylus.
protected override void OnStylusUp(StylusEventArgs e)
{

    eraseTester.AddPoints(e.GetStylusPoints(this));
    eraseTester.StrokeHit -= new
        StrokeHitEventHandler(eraseTester_StrokeHit);
    eraseTester.EndHitTesting();
}

// When the stylus intersects a stroke, erase that part of
// the stroke.  When the stylus dissects a stoke, the 
// Stroke.Erase method returns a StrokeCollection that contains
// the two new strokes.
void eraseTester_StrokeHit(object sender,
    StrokeHitEventArgs args)
{
    StrokeCollection eraseResult =
        args.GetPointEraseResults();
    StrokeCollection strokesToReplace = new StrokeCollection();
    strokesToReplace.Add(args.HitStroke);
   
    // Replace the old stroke with the new one.
    if (eraseResult.Count > 0)
    {
        presenter.Strokes.Replace(strokesToReplace, eraseResult);
    }
    else
    {
        presenter.Strokes.Remove(strokesToReplace);
    }
}

     ' Prepare to collect stylus packets. Get the 
     ' IncrementalHitTester from the InkPresenter's 
     ' StrokeCollection and subscribe to its StrokeHitChanged event.
     Protected Overrides Sub OnStylusDown(ByVal e As StylusDownEventArgs)

         MyBase.OnStylusDown(e)

         Dim eraserTip As New EllipseStylusShape(3, 3, 0)
         eraseTester = presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip)
         AddHandler eraseTester.StrokeHit, _
             AddressOf eraseTester_StrokeHit
         eraseTester.AddPoints(e.GetStylusPoints(Me))

     End Sub

     ' Collect the StylusPackets as the stylus moves.
     Protected Overrides Sub OnStylusMove(ByVal e As StylusEventArgs)

         If eraseTester.IsValid Then
             eraseTester.AddPoints(e.GetStylusPoints(Me))
         End If

     End Sub

     ' Unsubscribe from the StrokeHitChanged event when the
     ' user lifts the stylus.
     Protected Overrides Sub OnStylusUp(ByVal e As StylusEventArgs)

         eraseTester.AddPoints(e.GetStylusPoints(Me))

         RemoveHandler eraseTester.StrokeHit, _
             AddressOf eraseTester_StrokeHit
         eraseTester.EndHitTesting()

     End Sub


     ' When the stylus intersects a stroke, erase that part of
     ' the stroke.  When the stylus dissects a stoke, the 
     ' Stroke.Erase method returns a StrokeCollection that contains
     ' the two new strokes.
     Private Sub eraseTester_StrokeHit(ByVal sender As Object, _
             ByVal args As StrokeHitEventArgs)

         Dim eraseResult As StrokeCollection = _
             args.GetPointEraseResults()
         Dim strokesToReplace As New StrokeCollection()
         strokesToReplace.Add(args.HitStroke)

         ' Replace the old stroke with the new one.
         If eraseResult.Count > 0 Then
             presenter.Strokes.Replace(strokesToReplace, eraseResult)
         Else
             presenter.Strokes.Remove(strokesToReplace)
         End If

     End Sub

Comentarios

Determina IncrementalHitTester dinámicamente si el usuario "alcanza" un Stroke. Esta clase le permite proporcionar comentarios inmediatos al usuario en situaciones como seleccionar y borrar la entrada de lápiz.

Hay dos clases que heredan de IncrementalHitTester:

  • Los IncrementalLassoHitTester trazos de las pruebas de posicionamiento determinan si una ruta de acceso lazo la rodea.

  • Los IncrementalStrokeHitTester trazos de las pruebas de posicionamiento determinan dónde la intersección de una ruta de acceso del borrador.

En la tabla siguiente se muestra dónde aprender a administrar la entrada de lápiz digital en un control personalizado.

Para Vea este artículo
Crear un control que recopile la entrada de lápiz digital Creación de un control de entrada manuscrita
Crear un control que permita al usuario seleccionar la entrada de lápiz Cómo: Seleccionar entradas manuscritas desde un control personalizado
Crear un control que permita al usuario borrar la entrada de lápiz de punto Cómo: Borrar la entrada manuscrita en un control personalizado

Uso de texto XAML

Esta clase no se usa normalmente en XAML.

Propiedades

IsValid

Obtiene un valor que indica si IncrementalHitTester está realizando pruebas de acceso.

Métodos

AddPoint(Point)

Agrega un objeto Point a IncrementalHitTester.

AddPoints(IEnumerable<Point>)

Agrega puntos a IncrementalHitTester.

AddPoints(StylusPointCollection)

Agrega los objetos StylusPoint especificados a IncrementalHitTester.

AddPointsCore(IEnumerable<Point>)

Agrega puntos a IncrementalHitTester.

EndHitTesting()

Libera los recursos usados por IncrementalHitTester.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a