Comparteix a través de


Stroke.HitTest Método

Definición

Devuelve si el objeto Stroke forma una intersección o está dentro de un área determinada.

Sobrecargas

HitTest(Point)

Devuelve un valor que indica si el actual objeto Stroke forma una intersección con el punto especificado.

HitTest(IEnumerable<Point>, Int32)

Devuelve un valor que indica si el actual objeto Stroke está dentro de los límites especificados.

HitTest(IEnumerable<Point>, StylusShape)

Devuelve si el trazado especificado interseca con el objeto Stroke utilizando el objeto StylusShape especificado.

HitTest(Point, Double)

Devuelve un valor que indica si el actual objeto Stroke forma una intersección con el área especificada.

HitTest(Rect, Int32)

Devuelve un valor que indica si Stroke está dentro de los límites del rectángulo especificado.

Comentarios

Puede usar los HitTest métodos para determinar si un Stroke objeto interseca un punto determinado o está dentro de los límites especificados.

Los métodos siguientes comprueban si se interseca .Stroke

Los métodos siguientes comprueban si está Stroke rodeado.

HitTest(Point)

Devuelve un valor que indica si el actual objeto Stroke forma una intersección con el punto especificado.

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

Parámetros

point
Point

Point para la prueba de posicionamiento.

Devoluciones

Boolean

Es true si point interseca con el actual trazo; de lo contrario, es false.

Ejemplos

En el ejemplo siguiente se cambia el color de un Stroke si interseca un área determinada.

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

Comentarios

Este método se comporta de la misma manera que el método sobrecargado HitTest(Point, Double) cuando diameter es 1.

Se aplica a

HitTest(IEnumerable<Point>, Int32)

Devuelve un valor que indica si el actual objeto Stroke está dentro de los límites especificados.

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

Parámetros

lassoPoints
IEnumerable<Point>

Matriz de tipo Point que representa los límites del área objeto de la prueba de posicionamiento.

percentageWithinLasso
Int32

Porcentaje de la longitud del objeto Stroke que debe estar en lassoPoints para que el objeto Stroke se considere incluido.

Devoluciones

Boolean

Es true si el trazo actual está dentro de los límites especificados; de lo contrario, es false.

Ejemplos

En el ejemplo siguiente se representa un trazo púrpura si al menos el 80 % del trazo está dentro de los límites de 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

Comentarios

El HitTest método conecta los puntos primero y último de lassoPoints para crear el lazo.

Se aplica a

HitTest(IEnumerable<Point>, StylusShape)

Devuelve si el trazado especificado interseca con el objeto Stroke utilizando el objeto StylusShape especificado.

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

Parámetros

path
IEnumerable<Point>

Ruta de acceso siguiente stylusShape para las pruebas de posicionamiento.

stylusShape
StylusShape

Forma de path que se utiliza para realizar la prueba de posicionamiento.

Devoluciones

Boolean

Es true si stylusShape interseca con el actual trazo; de lo contrario, es false.

Ejemplos

El código siguiente representa un trazo púrpura si el trazo interseca la ruta de acceso de 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

Comentarios

El HitTest método usa stylusShape para probar el trazo a lo largo eraserPathde .

Se aplica a

HitTest(Point, Double)

Devuelve un valor que indica si el actual objeto Stroke forma una intersección con el área especificada.

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

Parámetros

point
Point

Point que define el centro del área que se va a someter a una prueba de posicionamiento.

diameter
Double

Diámetro del área que se va a someter a una prueba de posicionamiento.

Devoluciones

Boolean

Es true si el área especificada forma una intersección con el trazo actual; de lo contrario, es false.

Ejemplos

En el ejemplo siguiente se cambia el color de un Stroke si interseca un área determinada.

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

Se aplica a

HitTest(Rect, Int32)

Devuelve un valor que indica si Stroke está dentro de los límites del rectángulo especificado.

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

Parámetros

bounds
Rect

Rect que representa los límites del área para la prueba de posicionamiento.

percentageWithinBounds
Int32

Porcentaje de la longitud del objeto Stroke que debe estar en percentageWithinBounds para que el objeto Stroke se considere incluido.

Devoluciones

Boolean

true si el trazo actual está dentro de los límites de bounds; de lo contrario, false.

Ejemplos

En el ejemplo siguiente se representa un trazo púrpura si al menos el 80 % del trazo está dentro de 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

Se aplica a