IncrementalHitTester Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Utför dynamiskt träfftestning på en Stroke.
public ref class IncrementalHitTester abstract
public abstract class IncrementalHitTester
type IncrementalHitTester = class
Public MustInherit Class IncrementalHitTester
- Arv
-
IncrementalHitTester
- Härledda
Exempel
I följande exempel visas hur du lägger till punkter i IncrementalHitTester när användaren matar in data med pennan. Exemplet innehåller en StrokeHit händelsehanterare som raderar den del av Stroke användaren som användaren korsar. Information om hur du skapar en kontroll som gör det möjligt för en användare att radera pennanteckningar finns i How to: Erase Ink on a Custom Control (Så här gör du: Radera pennanteckningar på en anpassad kontroll).
// 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
Kommentarer
Dynamiskt IncrementalHitTester avgör om användaren "träffar" en Stroke. Med den här klassen kan du ge omedelbar feedback till användaren i situationer som att välja och radera pennanteckningar.
Det finns två klasser som ärver från IncrementalHitTester:
Träffen IncrementalLassoHitTester testar linjer genom att avgöra om en lassosökväg omger den.
Träffen IncrementalStrokeHitTester testar linjer genom att avgöra var en raderingsväg korsar den.
I följande tabell visas var du kan lära dig hur du hanterar digital pennanteckning på en anpassad kontroll.
| För att göra detta… | Se den här artikeln |
|---|---|
| Skapa en kontroll som samlar in digital pennanteckning | Skapa en ink-indatakontroll |
| Skapa en kontroll som gör att användaren kan välja pennanteckning | Anvisningar: Välj pennanteckning från en anpassad kontroll |
| Skapa en kontroll som gör det möjligt för användaren att peka och radera pennanteckningar | Så här gör du: Radera pennanteckningar på en anpassad kontroll |
XAML-textanvändning
Den här klassen används vanligtvis inte i XAML.
Egenskaper
| Name | Description |
|---|---|
| IsValid |
Hämtar om IncrementalHitTester är träfftestning. |
Metoder
| Name | Description |
|---|---|
| AddPoint(Point) |
Lägger till en Point i IncrementalHitTester. |
| AddPoints(IEnumerable<Point>) |
Lägger till punkter i IncrementalHitTester. |
| AddPoints(StylusPointCollection) |
Lägger till de angivna StylusPoint objekten i IncrementalHitTester. |
| AddPointsCore(IEnumerable<Point>) |
Lägger till punkter i IncrementalHitTester. |
| EndHitTesting() |
Frigör resurser som används av IncrementalHitTester. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |