Sdílet prostřednictvím


Stroke.HitTest Metoda

Definice

Vrátí, zda Stroke je protínaná nebo je v určité oblasti.

Přetížení

HitTest(Point)

Vrátí hodnotu, která určuje, zda aktuální Stroke protíná zadaný bod.

HitTest(IEnumerable<Point>, Int32)

Vrátí hodnotu, která určuje, jestli je aktuální hodnota Stroke v rámci zadaných hranic.

HitTest(IEnumerable<Point>, StylusShape)

Vrátí, zda zadaná cesta protíná Stroke použití zadané StylusShape.

HitTest(Point, Double)

Vrátí hodnotu, která určuje, zda aktuální Stroke protíná zadanou oblast.

HitTest(Rect, Int32)

Vrátí hodnotu, která určuje, zda Stroke je v mezích zadaného obdélníku.

Poznámky

Pomocí metod můžete HitTest určit, zda se Stroke protíná určitý bod nebo je v zadaných mezích.

Následující metody zkontrolují, jestli Stroke je protínaná.

Následující metody zkontrolují, zda Stroke je obklopen.

HitTest(Point)

Vrátí hodnotu, která určuje, zda aktuální Stroke protíná zadaný bod.

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

To, co Point se má testovat.

Návraty

Boolean

true pokud point protíná aktuální tah; falsev opačném případě .

Příklady

Následující příklad změní barvu, Stroke pokud protíná určitou oblast.

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

Poznámky

Tato metoda se chová stejně jako přetížená HitTest(Point, Double) metoda, pokud diameter je 1.

Platí pro

HitTest(IEnumerable<Point>, Int32)

Vrátí hodnotu, která určuje, jestli je aktuální hodnota Stroke v rámci zadaných hranic.

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>

Pole typu Point , které představuje hranice oblasti k dosažení testu.

percentageWithinLasso
Int32

Procento délky Stroke, které musí být, lassoPoints Stroke aby bylo považováno za dosažení.

Návraty

Boolean

true je-li aktuální tah v rámci zadaných hranic; jinak false.

Příklady

Následující příklad vykreslí tah fialový, pokud alespoň 80 % tahu je v mezích 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

Poznámky

Metoda HitTest připojí první a poslední body lassoPoints k vytvoření lasa.

Platí pro

HitTest(IEnumerable<Point>, StylusShape)

Vrátí, zda zadaná cesta protíná Stroke použití zadané StylusShape.

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>

Cesta, která stylusShape následuje pro dosažení testování.

stylusShape
StylusShape

Tvar path , pomocí kterého se má test provést.

Návraty

Boolean

true pokud stylusShape protíná aktuální tah; falsev opačném případě .

Příklady

Následující kód vykreslí tah fialový, pokud tah protíná cestu 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

Poznámky

Metoda HitTest používá stylusShape k otestování tahu podél eraserPath.

Platí pro

HitTest(Point, Double)

Vrátí hodnotu, která určuje, zda aktuální Stroke protíná zadanou oblast.

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

Ten Point definuje střed oblasti, která se má testovat.

diameter
Double

Průměr oblasti, která se má testovat.

Návraty

Boolean

true pokud zadaná oblast protíná aktuální tah; falsev opačném případě .

Příklady

Následující příklad změní barvu, Stroke pokud protíná určitou oblast.

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

Platí pro

HitTest(Rect, Int32)

Vrátí hodnotu, která určuje, zda Stroke je v mezích zadaného obdélníku.

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

A Rect , který představuje hranice oblasti, která se má testovat.

percentageWithinBounds
Int32

Procento délky Stroke, které musí být, percentageWithinBounds Stroke aby bylo považováno za dosažení.

Návraty

Boolean

true je-li aktuální tah v mezích bounds; v opačném případě false, .

Příklady

Následující příklad vykreslí tah fialový, pokud je alespoň 80 % tahu Rectuvnitř .

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

Platí pro