Freigeben über


Stroke.HitTest Methode

Definition

Gibt zurück, ob der Stroke einen bestimmten Bereich überschneidet oder innerhalb dieses Bereichs liegt.

Überlädt

HitTest(Point)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke den angegebenen Punkt überschneidet.

HitTest(IEnumerable<Point>, Int32)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke innerhalb der angegebenen Grenzen liegt.

HitTest(IEnumerable<Point>, StylusShape)

Gibt zurück, ob der angegebene Pfad den Stroke mit der angegebenen StylusShape überschneidet.

HitTest(Point, Double)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke den angegebenen Bereich überschneidet.

HitTest(Rect, Int32)

Gibt einen Wert zurück, der angibt, ob der Stroke innerhalb der Grenzen des angegebenen Rechtecks liegt.

Hinweise

Sie können die HitTest Methoden verwenden, um zu bestimmen, ob ein Stroke bestimmter Punkt oder innerhalb der angegebenen Grenzen liegt.

Mit den folgenden Methoden wird überprüft, ob dies Stroke überschneidend ist.

Die folgenden Methoden überprüfen, ob die Stroke Umgebung umgeben ist.

HitTest(Point)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke den angegebenen Punkt überschneidet.

public:
 bool HitTest(System::Windows::Point point);
public bool HitTest (System.Windows.Point point);
member this.HitTest : System.Windows.Point -> bool
Public Function HitTest (point As Point) As Boolean

Parameter

point
Point

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

Gibt zurück

Boolean

true, wenn point den aktuellen Strich überschneidet, andernfalls false.

Beispiele

Im folgenden Beispiel wird die Farbe eines Stroke Bereichs geändert, wenn er einen bestimmten Bereich überschneidet.

Point myPoint = new Point(100, 100);

if (myStroke.HitTest(myPoint, 10))
{
    myStroke.DrawingAttributes.Color = Colors.Red;
}
Dim myPoint As New System.Windows.Point(100, 100)

If myStroke.HitTest(myPoint, 10) Then
    myStroke.DrawingAttributes.Color = Colors.Red
End If

Hinweise

Diese Methode verhält sich genauso wie die überladene HitTest(Point, Double) Methode, wenn diameter 1 ist.

Gilt für

HitTest(IEnumerable<Point>, Int32)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke innerhalb der angegebenen Grenzen liegt.

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

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

Der Prozentsatz der Länge des Stroke, der sich in lassoPoints befinden muss, damit der Stroke als Treffer gilt.

Gibt zurück

Boolean

true, wenn sich der aktuelle Strich innerhalb der angegebenen Grenzen befindet, andernfalls false.

Beispiele

Im folgenden Beispiel wird ein Strich lila gerendert, wenn mindestens 80 % des Strichs innerhalb der Grenzen des myPointsStrichs liegt.

Point[] myPoints = new Point[] {
    new Point(100, 100),
    new Point(200, 100),
    new Point(200, 200),
    new Point(100, 200)};

if (aStroke.HitTest(myPoints, 80))
{
    aStroke.DrawingAttributes.Color = Colors.Purple;
}
Dim myPoints() As System.Windows.Point = _
                      {New System.Windows.Point(100, 100), _
                       New System.Windows.Point(200, 100), _
                       New System.Windows.Point(200, 200), _
                       New System.Windows.Point(100, 200)}

If aStroke.HitTest(myPoints, 80) Then
    aStroke.DrawingAttributes.Color = Colors.Purple
End If

Hinweise

Die HitTest Methode verbindet die ersten und letzten Punkte lassoPoints , um das Lasso zu erstellen.

Gilt für

HitTest(IEnumerable<Point>, StylusShape)

Gibt zurück, ob der angegebene Pfad den Stroke mit der angegebenen StylusShape überschneidet.

public:
 bool HitTest(System::Collections::Generic::IEnumerable<System::Windows::Point> ^ path, System::Windows::Ink::StylusShape ^ stylusShape);
public bool 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 -> bool
Public Function HitTest (path As IEnumerable(Of Point), stylusShape As StylusShape) As Boolean

Parameter

path
IEnumerable<Point>

Der Pfad, der stylusShape zum Testen von Treffern folgt.

stylusShape
StylusShape

Die Form von path, mit dem der Treffertest durchgeführt werden soll.

Gibt zurück

Boolean

true, wenn stylusShape den aktuellen Strich überschneidet, andernfalls false.

Beispiele

Der folgende Code rendert einen Strich lila, wenn der Strich den Pfad von myPoints.

Point[] myPoints = new Point[] {
    new Point(100, 100),
    new	Point(200, 100),
    new	Point(200, 200),
    new	Point(100, 200)};

EllipseStylusShape myStylus = new EllipseStylusShape(5.0, 5.0, 0.0);

if (aStroke.HitTest(myPoints, myStylus))
{
    aStroke.DrawingAttributes.Color = Colors.Purple;
}
Dim myPoints() As System.Windows.Point = _
                      {New System.Windows.Point(100, 100), _
                       New System.Windows.Point(200, 100), _
                       New System.Windows.Point(200, 200), _
                       New System.Windows.Point(100, 200)}

Dim myStylus As New EllipseStylusShape(5.0, 5.0, 0.0)

If aStroke.HitTest(myPoints, myStylus) Then
    aStroke.DrawingAttributes.Color = Colors.Purple
End If

Hinweise

Die HitTest Methode verwendet stylusShape , um den Strich entlang eraserPathzu testen.

Gilt für

HitTest(Point, Double)

Gibt einen Wert zurück, der angibt, ob der aktuelle Stroke den angegebenen Bereich überschneidet.

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

Parameter

point
Point

Der Point, der den Mittelpunkt des Bereichs für den Treffertest definiert.

diameter
Double

Der Durchmesser des Bereichs für den Treffertest.

Gibt zurück

Boolean

true, wenn der angegebene Bereich den aktuellen Strich überschneidet, andernfalls false.

Beispiele

Im folgenden Beispiel wird die Farbe eines Stroke Bereichs geändert, wenn er einen bestimmten Bereich überschneidet.

Point myPoint = new Point(100, 100);

if (myStroke.HitTest(myPoint, 10))
{
    myStroke.DrawingAttributes.Color = Colors.Red;
}
Dim myPoint As New System.Windows.Point(100, 100)

If myStroke.HitTest(myPoint, 10) Then
    myStroke.DrawingAttributes.Color = Colors.Red
End If

Gilt für

HitTest(Rect, Int32)

Gibt einen Wert zurück, der angibt, ob der Stroke innerhalb der Grenzen des angegebenen Rechtecks liegt.

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

Parameter

bounds
Rect

Ein Rect, das die Begrenzungen des Treffertestbereichs darstellt.

percentageWithinBounds
Int32

Der Prozentsatz der Länge des Stroke, der sich in percentageWithinBounds befinden muss, damit der Stroke als Treffer gilt.

Gibt zurück

Boolean

true, wenn der aktuelle Strich innerhalb der Grenzen der bounds liegt; andernfalls false.

Beispiele

Im folgenden Beispiel wird ein Strich lila gerendert, wenn mindestens 80 % des Strichs innerhalb des RectStrichs liegt.

Rect rect1 = new Rect(100, 100, 100, 100);

if (aStroke.HitTest(rect1, 80))
{
    aStroke.DrawingAttributes.Color = Colors.Purple;
}
Dim rect1 As New Rect(100, 100, 100, 100)

If aStroke.HitTest(rect1, 80) Then
    aStroke.DrawingAttributes.Color = Colors.Purple
End If

Gilt für