Freigeben über


StrokeCollection.HitTest Methode

Definition

Gibt eine Auflistung von innerhalb des angegebenen Bereichs enthaltenen Strichen zurück.

Überlädt

HitTest(Rect, Int32)

Gibt eine Auflistung von Strichen zurück, die im angegebenen Rechteck eine Länge von mindestens dem angegebenen Prozentsatz aufweisen.

HitTest(Point, Double)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Bereich überschneiden.

HitTest(IEnumerable<Point>, StylusShape)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Pfad überschneiden.

HitTest(IEnumerable<Point>, Int32)

Gibt eine Auflistung von Strichen zurück, die im angegebenen Bereich eine Länge von mindestens dem angegebenen Prozentsatz aufweisen.

HitTest(Point)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Punkt überschneiden.

HitTest(Rect, Int32)

Gibt eine Auflistung von Strichen zurück, die im angegebenen Rechteck eine Länge von mindestens dem angegebenen Prozentsatz aufweisen.

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Rect bounds, int percentageWithinBounds);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Rect bounds, int percentageWithinBounds);
member this.HitTest : System.Windows.Rect * int -> System.Windows.Ink.StrokeCollection
Public Function HitTest (bounds As Rect, percentageWithinBounds As Integer) As StrokeCollection

Parameter

bounds
Rect

Ein Rect, das die Grenzen angibt, für die ein Treffertest durchgeführt werden soll.

percentageWithinBounds
Int32

Die mindestens erforderliche Länge eines Strichs, die in den Grenzen vorhanden sein muss, damit dieser als Treffer gilt.

Gibt zurück

Eine StrokeCollection, die Striche mit mindestens dem angegebenen Prozentwert innerhalb des Rect enthält.

Beispiele

Im folgenden Beispiel werden die Striche gelöscht, die mindestens 50 % innerhalb der Grenzen von Rectliegen. In diesem Beispiel wird davon ausgegangen, dass es einen InkPresenter namens presentergibt.

Rect rect = new Rect(100, 100, 200, 200);
StrokeCollection strokes = presenter.Strokes.HitTest(rect, 50);

presenter.Strokes.Remove(strokes);
Dim rect As Rect = New Rect(100, 100, 200, 200)
Dim strokes As StrokeCollection = presenter.Strokes.HitTest(rect, 50)

presenter.Strokes.Remove(strokes)

Gilt für:

HitTest(Point, Double)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Bereich überschneiden.

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Point point, double diameter);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Point point, double diameter);
member this.HitTest : System.Windows.Point * double -> System.Windows.Ink.StrokeCollection
Public Function HitTest (point As Point, diameter As Double) As StrokeCollection

Parameter

point
Point

Das Point-Element, für das ein Treffertest durchgeführt werden soll.

diameter
Double

Die Größe des Bereichs um den Point, für den ein Treffertest durchgeführt werden soll.

Gibt zurück

Eine Auflistung von Stroke-Objekten, die den angegebenen Punkt überschneiden.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Die Striche abgerufen werden, die sich überschneiden.Point In diesem Beispiel wird davon ausgegangen, dass es einen InkPresenter namens presentergibt.

// Change the color of all the strokes at the specified position.
public void SelectStrokes(Point position)
{
    StrokeCollection selected = presenter.Strokes.HitTest(position, 5);

    foreach (Stroke s in selected)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
' Change the color of all the strokes at the specified position.
Public Sub SelectStrokes(ByVal position As Point)

    Dim selected As StrokeCollection = presenter.Strokes.HitTest(position, 5)

    Dim s As Stroke
    For Each s In selected
        s.DrawingAttributes.Color = Colors.Purple
    Next s

End Sub

Gilt für:

HitTest(IEnumerable<Point>, StylusShape)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Pfad überschneiden.

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Collections::Generic::IEnumerable<System::Windows::Point> ^ path, System::Windows::Ink::StylusShape ^ stylusShape);
public System.Windows.Ink.StrokeCollection HitTest (System.Collections.Generic.IEnumerable<System.Windows.Point> path, System.Windows.Ink.StylusShape stylusShape);
member this.HitTest : seq<System.Windows.Point> * System.Windows.Ink.StylusShape -> System.Windows.Ink.StrokeCollection
Public Function HitTest (path As IEnumerable(Of Point), stylusShape As StylusShape) As StrokeCollection

Parameter

path
IEnumerable<Point>

Ein Array vom Typ Point, das den Pfad darstellt, für den ein Treffertest durchgeführt werden soll.

stylusShape
StylusShape

Der StylusShape, der die Form von eraserPath angibt.

Gibt zurück

Eine StrokeCollection von Strichen, die path überschneiden.

Beispiele

Im folgenden Beispiel wird die Farbe aller Striche geändert, die den Pfad überschneiden, der Point vom Array erstellt wird. In diesem Beispiel wird davon ausgegangen, dass es einen InkPresenter namens presentergibt.

private void HitTestWithEraser(Point[] points)
{
    RectangleStylusShape eraser = new RectangleStylusShape(3, 3, 0);

    StrokeCollection strokes = presenter.Strokes.HitTest(points, eraser);

    foreach (Stroke s in strokes)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
Private Sub HitTestWithEraser(ByVal points() As Point)
    Dim eraser As RectangleStylusShape = New RectangleStylusShape(3, 3, 0)

    Dim strokes As StrokeCollection = presenter.Strokes.HitTest(points, eraser)

    Dim s As Stroke
    For Each s In strokes
        s.DrawingAttributes.Color = Colors.Purple
    Next
End Sub

Gilt für:

HitTest(IEnumerable<Point>, Int32)

Gibt eine Auflistung von Strichen zurück, die im angegebenen Bereich eine Länge von mindestens dem angegebenen Prozentsatz aufweisen.

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Collections::Generic::IEnumerable<System::Windows::Point> ^ lassoPoints, int percentageWithinLasso);
public System.Windows.Ink.StrokeCollection HitTest (System.Collections.Generic.IEnumerable<System.Windows.Point> lassoPoints, int percentageWithinLasso);
member this.HitTest : seq<System.Windows.Point> * int -> System.Windows.Ink.StrokeCollection
Public Function HitTest (lassoPoints As IEnumerable(Of Point), percentageWithinLasso As Integer) As StrokeCollection

Parameter

lassoPoints
IEnumerable<Point>

Ein Array vom Typ Point, das die Grenzen des Bereichs darstellt, für den ein Treffertest durchgeführt werden soll.

percentageWithinLasso
Int32

Die zulässige Länge des Stroke als Prozentwert, die in lassoPoints enthalten sein darf.

Gibt zurück

Eine StrokeCollection, die Striche mit mindestens dem angegebenen Prozentwert innerhalb des Point-Arrays enthält.

Ausnahmen

lassoPoints ist null.

- oder -

percentageWithinLasso ist null.

lassoPoints enthält ein leeres Array.

percentageWithinLasso ist kleiner als 0 (null) oder größer als 100.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie alle Striche entfernt werden, die mindestens 80 Prozent innerhalb des angegebenen Lassos aus einem StrokeCollectionsind. Dies ist nützlich, wenn ein benutzerdefiniertes Steuerelement es dem Benutzer ermöglicht, Freihand mit einem Lasso auszuwählen. Informationen zum Erstellen eines Steuerelements, das es einem Benutzer ermöglicht, Freihand mit einem Lasso auszuwählen, finden Sie unter Vorgehensweise: Auswählen von Freihand aus einem benutzerdefinierten Steuerelement.

// Remove the strokes within the lasso from the InkPresenter
public void RemoveStrokes(Point[] lasso)
{
    StrokeCollection strokes = presenter.Strokes.HitTest(lasso, 80);

    presenter.Strokes.Remove(strokes);
}
' Remove the strokes within the lasso from the InkPresenter
Public Sub RemoveStrokes(ByVal lasso As Point())

    If lasso Is Nothing Then
        Return
    End If

    Dim strokes As StrokeCollection = _
        presenter.Strokes.HitTest(lasso, 80)

    presenter.Strokes.Remove(strokes)

End Sub

Gilt für:

HitTest(Point)

Gibt eine Auflistung von Strichen zurück, die den angegebenen Punkt überschneiden.

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Point point);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Point point);
member this.HitTest : System.Windows.Point -> System.Windows.Ink.StrokeCollection
Public Function HitTest (point As Point) As StrokeCollection

Parameter

point
Point

Der auf Treffer zu überprüfende Punkt.

Gibt zurück

Eine Auflistung von Stroke-Objekten, die den angegebenen Punkt überschneiden.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Die Striche abgerufen werden, die sich überschneiden.Point In diesem Beispiel wird davon ausgegangen, dass es einen InkPresenter namens presentergibt.

// Change the color of all the strokes at the specified position.
public void SelectStrokes(Point position)
{
    StrokeCollection selected = presenter.Strokes.HitTest(position, 5);

    foreach (Stroke s in selected)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
' Change the color of all the strokes at the specified position.
Public Sub SelectStrokes(ByVal position As Point)

    Dim selected As StrokeCollection = presenter.Strokes.HitTest(position, 5)

    Dim s As Stroke
    For Each s In selected
        s.DrawingAttributes.Color = Colors.Purple
    Next s

End Sub

Gilt für: