Udostępnij za pośrednictwem


Stroke.HitTest Metoda

Definicja

Zwraca, czy przecięcie Stroke , czy znajduje się w określonym obszarze.

Przeciążenia

HitTest(Point)

Zwraca wartość wskazującą, czy bieżący Stroke przecina określony punkt.

HitTest(IEnumerable<Point>, Int32)

Zwraca wartość wskazującą, czy bieżący Stroke znajduje się w określonych granicach.

HitTest(IEnumerable<Point>, StylusShape)

Zwraca, czy określona ścieżka przecina Stroke obiekt przy użyciu określonego StylusShapeelementu .

HitTest(Point, Double)

Zwraca wartość wskazującą, czy bieżący Stroke przecina określony obszar.

HitTest(Rect, Int32)

Zwraca wartość wskazującą, czy Stroke element znajduje się w granicach określonego prostokąta.

Uwagi

Można użyć HitTest metod, aby określić, czy przecięcie Stroke określonego punktu lub znajduje się w określonych granicach.

Poniższe metody sprawdzają, czy element Stroke jest przecinany.

Poniższe metody sprawdzają, czy Stroke obiekt jest otoczony.

HitTest(Point)

Zwraca wartość wskazującą, czy bieżący Stroke przecina określony punkt.

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

Parametry

point
Point

Test Point trafienia.

Zwraca

Boolean

true jeśli point przecina bieżący pociągnięcie; w przeciwnym razie wartość false.

Przykłady

Poniższy przykład zmienia kolor obiektu Stroke , jeśli przecina określony obszar.

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

Uwagi

Ta metoda zachowuje się tak samo jak metoda przeciążona HitTest(Point, Double) , gdy diameter ma wartość 1.

Dotyczy

HitTest(IEnumerable<Point>, Int32)

Zwraca wartość wskazującą, czy bieżący Stroke znajduje się w określonych granicach.

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

Parametry

lassoPoints
IEnumerable<Point>

Tablica typu Point reprezentująca granice obszaru, które mają być testem trafienia.

percentageWithinLasso
Int32

Wartość procentowa długości Strokeobiektu , która musi należeć do Stroke wartości, która ma zostać lassoPoints uznana za trafienie.

Zwraca

Boolean

true jeśli bieżący pociągnięcie mieści się w określonych granicach; w przeciwnym razie false.

Przykłady

Poniższy przykład renderuje fioletowy pociągnięcie, jeśli co najmniej 80% pociągnięcia mieści się w granicach myPoints.

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

Uwagi

Metoda HitTest łączy pierwsze i ostatnie punkty, lassoPoints aby utworzyć lasso.

Dotyczy

HitTest(IEnumerable<Point>, StylusShape)

Zwraca, czy określona ścieżka przecina Stroke obiekt przy użyciu określonego StylusShapeelementu .

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

Parametry

path
IEnumerable<Point>

Ścieżka, która stylusShape następuje do testowania trafień.

stylusShape
StylusShape

Kształt, za pomocą path którego ma być test trafiony.

Zwraca

Boolean

true jeśli stylusShape przecina bieżący pociągnięcie; w przeciwnym razie wartość false.

Przykłady

Poniższy kod renderuje fioletowy pociągnięcie, jeśli pociągnięcie przecina ścieżkę .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

Uwagi

Metoda HitTest używa stylusShape metody do testowania pociągnięcia wzdłuż eraserPath.

Dotyczy

HitTest(Point, Double)

Zwraca wartość wskazującą, czy bieżący Stroke przecina określony obszar.

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

Parametry

point
Point

Element Point definiujący środek obszaru, który ma być testem trafienia.

diameter
Double

Średnica obszaru, który ma trafić test.

Zwraca

Boolean

true jeśli określony obszar przecina bieżący pociągnięcie; w przeciwnym razie , false.

Przykłady

Poniższy przykład zmienia kolor obiektu Stroke , jeśli przecina określony obszar.

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

Dotyczy

HitTest(Rect, Int32)

Zwraca wartość wskazującą, czy Stroke element znajduje się w granicach określonego prostokąta.

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

Parametry

bounds
Rect

Element Rect reprezentujący granice obszaru, które mają być testem trafienia.

percentageWithinBounds
Int32

Wartość procentowa długości Strokeobiektu , która musi należeć do Stroke wartości, która ma zostać percentageWithinBounds uznana za trafienie.

Zwraca

Boolean

true jeśli bieżący pociągnięcie mieści się w granicach bounds; w przeciwnym razie , false.

Przykłady

Poniższy przykład renderuje purpurowy pociągnięcie, jeśli co najmniej 80% pociągnięcia mieści się w obiekcie Rect.

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

Dotyczy