StrokeCollection.HitTest Methode

Definition

Gibt eine Auflistung von Strichen zurück, die im angegebenen Bereich enthalten sind.

Überlädt

Name Beschreibung
HitTest(Rect, Int32)

Gibt eine Auflistung von Strichen zurück, die mindestens den angegebenen Prozentsatz der Länge innerhalb des angegebenen Rechtecks aufweisen.

HitTest(Point, Double)

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

HitTest(IEnumerable<Point>, StylusShape)

Gibt eine Auflistung von Strichen zurück, die sich mit dem angegebenen Pfad schneiden.

HitTest(IEnumerable<Point>, Int32)

Gibt eine Auflistung von Strichen zurück, die mindestens den angegebenen Prozentsatz der Länge innerhalb des angegebenen Bereichs aufweisen.

HitTest(Point)

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

HitTest(Rect, Int32)

Gibt eine Auflistung von Strichen zurück, die mindestens den angegebenen Prozentsatz der Länge innerhalb des angegebenen Rechtecks 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

A Rect that specifies the bounds to be hit test.

percentageWithinBounds
Int32

Die minimale erforderliche Länge eines Strichs, der innerhalb der Grenzen vorhanden sein muss, damit er als Treffer angesehen wird.

Gibt zurück

Ein StrokeCollection Strich mit mindestens dem angegebenen Prozentsatz innerhalb des Rect.

Beispiele

Im folgenden Beispiel werden die Striche gelöscht, die mindestens 50% innerhalb der Grenzen der Rect. In diesem Beispiel wird davon ausgegangen, dass ein aufgerufener InkPresenter Vorgang vorhanden presenterist.

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 schneiden.

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

Der Point Treffertest.

diameter
Double

Die Größe des Bereichs um den Point Treffertest.

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 die angegebene PointStriche überschneiden. In diesem Beispiel wird davon ausgegangen, dass ein aufgerufener InkPresenter Vorgang vorhanden presenterist.

// 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 sich mit dem angegebenen Pfad schneiden.

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 zum Eingeben Point , das den Pfad darstellt, der getestet werden soll.

stylusShape
StylusShape

Dies StylusShape gibt die Form von eraserPath.

Gibt zurück

A StrokeCollection of strokes that intersect with path.

Beispiele

Im folgenden Beispiel wird die Farbe aller Striche geändert, die den vom Array erstellten Point Pfad schneiden. In diesem Beispiel wird davon ausgegangen, dass ein aufgerufener InkPresenter Vorgang vorhanden presenterist.

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 mindestens den angegebenen Prozentsatz der Länge innerhalb des angegebenen Bereichs 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 zu prüfenden Bereichs darstellt.

percentageWithinLasso
Int32

Die zulässige Länge der Strokeals Prozentsatz lassoPoints einzudämmende Länge.

Gibt zurück

Ein StrokeCollection Strich mit mindestens dem angegebenen Prozentsatz innerhalb des Point Arrays.

Ausnahmen

lassoPoints ist null.

- oder -

percentageWithinLasso ist null.

lassoPoints enthält ein leeres Array.

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

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie alle Striche entfernt werden, die mindestens 80 Prozent innerhalb des angegebenen Lassos von einem StrokeCollection. Dies ist nützlich, wenn ein benutzerdefiniertes Steuerelement dem Benutzer das Auswählen von Freihandeingaben mit einem Lasso ermöglicht. Informationen zum Erstellen eines Steuerelements, mit dem ein Benutzer Freihandeingaben mit einem Lasso auswählen kann, finden Sie unter How to: Select Ink from a Custom Control.

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

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 Punkt zum Treffertest.

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 die angegebene PointStriche überschneiden. In diesem Beispiel wird davon ausgegangen, dass ein aufgerufener InkPresenter Vorgang vorhanden presenterist.

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