Partager via


IncrementalHitTester Classe

Définition

Exécute dynamiquement le test d'atteinte sur un Stroke.

public ref class IncrementalHitTester abstract
public abstract class IncrementalHitTester
type IncrementalHitTester = class
Public MustInherit Class IncrementalHitTester
Héritage
IncrementalHitTester
Dérivé

Exemples

L’exemple suivant montre comment ajouter des points au IncrementalHitTester lorsque l’utilisateur entre des données avec le stylet. L’exemple inclut un gestionnaire d’événements StrokeHit qui efface la partie du Stroke que l’utilisateur croise. Pour créer un contrôle qui permet à un utilisateur d’effacer l’entrée manuscrite, consultez Guide pratique pour effacer l’encre sur un contrôle personnalisé.


// 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

Remarques

détermine IncrementalHitTester dynamiquement si l’utilisateur « atteint » un Stroke. Cette classe vous permet de fournir des commentaires immédiats à l’utilisateur dans des situations telles que la sélection et l’effacement de l’encre.

Il existe deux classes qui héritent de IncrementalHitTester:

Le tableau suivant répertorie où apprendre à gérer l’entrée manuscrite numérique sur un contrôle personnalisé.

Pour faire ceci... Lisez l’article :
Créer un contrôle qui collecte l’encre numérique Création d'un contrôle d'entrée d'encre
Créer un contrôle qui permet à l’utilisateur de sélectionner l’entrée manuscrite Comment : sélectionner une encre à partir d'un contrôle personnalisé
Créer un contrôle qui permet à l’utilisateur d’effacer l’entrée manuscrite Comment : effacer l'encre sur un contrôle personnalisé

Utilisation du texte XAML

Cette classe n’est généralement pas utilisée dans XAML.

Propriétés

IsValid

Obtient si le IncrementalHitTester effectue un test d'atteinte.

Méthodes

AddPoint(Point)

Ajoute un objet Point à IncrementalHitTester.

AddPoints(IEnumerable<Point>)

Ajoute des points à IncrementalHitTester.

AddPoints(StylusPointCollection)

Ajoute les objets StylusPoint spécifiés au IncrementalHitTester.

AddPointsCore(IEnumerable<Point>)

Ajoute des points à IncrementalHitTester.

EndHitTesting()

Libère les ressources utilisées par IncrementalHitTester.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à