Freigeben über


IncrementalHitTester Klasse

Definition

Führt dynamisch Treffertests für einen Stroke durch.

public ref class IncrementalHitTester abstract
public abstract class IncrementalHitTester
type IncrementalHitTester = class
Public MustInherit Class IncrementalHitTester
Vererbung
IncrementalHitTester
Abgeleitet

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Punkte hinzugefügt werden, IncrementalHitTester wenn der Benutzer Daten mit dem Tablettstift einführt. Das Beispiel enthält einen StrokeHit Ereignishandler, der den Teil des löscht, den Stroke der Benutzer überschneidet. Informationen zum Erstellen eines Steuerelements, das es einem Benutzer ermöglicht, Freihandeingaben zu löschen, finden Sie unter Vorgehensweise: Löschen von Freihand in einem benutzerdefinierten Steuerelement.


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

Hinweise

Die IncrementalHitTester bestimmt dynamisch, ob der Benutzer eine Stroke"trifft". Mit dieser Klasse können Sie dem Benutzer in Situationen wie dem Auswählen und Löschen von Freihand sofortiges Feedback geben.

Es gibt zwei Klassen, die von erben IncrementalHitTester:

In der folgenden Tabelle erfahren Sie, wie Sie digitale Freihandeingaben für ein benutzerdefiniertes Steuerelement verwalten.

Aufgabe Siehe dieser Artikel
Erstellen eines Steuerelements, das digitale Freihandeingaben sammelt Erstellen eines Freihandeingabesteuerelements
Erstellen eines Steuerelements, das es dem Benutzer ermöglicht, Freihandeingaben auszuwählen Gewusst wie: Auswählen von Freihandeingaben aus einem benutzerdefinierten Steuerelement
Erstellen eines Steuerelements, das es dem Benutzer ermöglicht, freihand zu löschen Gewusst wie: Löschen von Freihandeingaben auf einem benutzerdefinierten Steuerelement

XAML-Textverwendung

Diese Klasse wird in der Regel nicht in XAML verwendet.

Eigenschaften

IsValid

Ruft ab, ob der IncrementalHitTester einen Treffertest durchführt.

Methoden

AddPoint(Point)

Fügt der Point einen IncrementalHitTester hinzu.

AddPoints(IEnumerable<Point>)

Fügt dem IncrementalHitTester Punkte hinzu.

AddPoints(StylusPointCollection)

Fügt dem StylusPoint die angegebenen IncrementalHitTester-Objekte hinzu.

AddPointsCore(IEnumerable<Point>)

Fügt dem IncrementalHitTester Punkte hinzu.

EndHitTesting()

Gibt von IncrementalHitTester verwendete Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: