Język

Stroke.HitTest Metoda

Definicja

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

Przeciążenia

Nazwa Opis
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 element 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 Stroke element 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

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

Przykłady

Poniższy przykład zmienia kolor elementu 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 do testu trafienia.

percentageWithinLasso
Int32

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

Zwraca

true jeśli bieżący pociągnięć znajduje 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 znajduje 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 element 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, z path którym ma być test trafiony.

Zwraca

true jeśli stylusShape przecina bieżący pociągnięcie; w przeciwnym razie 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 do trafienia testu.

diameter
Double

Średnica obszaru do badania trafienia.

Zwraca

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

Przykłady

Poniższy przykład zmienia kolor elementu 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 do testu trafienia.

percentageWithinBounds
Int32

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

Zwraca

true jeśli bieżący pociągnięć znajduje się w granicach bounds; w przeciwnym razie false.

Przykłady

Poniższy przykład renderuje fioletowy pociągnięcie, jeśli co najmniej 80% pociągnięcia znajduje 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