IncrementalHitTester Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Der IncrementalLassoHitTester Treffer testet Striche, indem bestimmt wird, ob ein Lassopfad ihn umgibt.
Der IncrementalStrokeHitTester Treffer testet Striche, indem bestimmt wird, wo sich ein Radiererpfad überschneidet.
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) |