Бөлісу құралы:


Stroke.HitTest Метод

Определение

Возвращает результат, указывающий, пересекает ли Stroke границу определенной области или находится в ее пределах.

Перегрузки

HitTest(Point)

Возвращает значение, указывающее, пересекается ли текущий росчерк Stroke с заданной точкой.

HitTest(IEnumerable<Point>, Int32)

Возвращает значение, указывающее, пересекает ли текущий Stroke заданную область.

HitTest(IEnumerable<Point>, StylusShape)

Указывает, пересекается ли указанный путь с Stroke, использующим заданную StylusShape.

HitTest(Point, Double)

Возвращает значение, указывающее, пересекает ли текущий Stroke заданную область.

HitTest(Rect, Int32)

Возвращает значение, которое указывает, находится ли Stroke в пределах заданного прямоугольника.

Комментарии

Методы можно использовать для HitTest определения того, пересекается ли Stroke определенная точка или находится в пределах указанных границ.

Следующие методы проверяют, пересекаются ли Stroke они.

Следующие методы проверяют, находится ли Stroke в окружении.

HitTest(Point)

Возвращает значение, указывающее, пересекается ли текущий росчерк Stroke с заданной точкой.

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

Параметры

point
Point

Point, используемая для проверки на пересечение.

Возвращаемое значение

Boolean

true, если point пересекает текущий росчерк, иначе false.

Примеры

В следующем примере изменяется цвет объекта, Stroke если он пересекается с определенной областью.

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

Комментарии

Этот метод ведет себя так же, как и перегруженный HitTest(Point, Double) метод, если diameter значение равно 1.

Применяется к

HitTest(IEnumerable<Point>, Int32)

Возвращает значение, указывающее, пересекает ли текущий Stroke заданную область.

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

Параметры

lassoPoints
IEnumerable<Point>

Массив типа Point, представляющий собой границы области, для которой выполняется проверка попадания.

percentageWithinLasso
Int32

Процент длины Stroke, которая должна попадать в lassoPoints, чтобы для расположения Stroke было определено попадание.

Возвращаемое значение

Boolean

true, если текущий росчерк находится в указанных границах, иначе false.

Примеры

В следующем примере отрисовывается фиолетовый штрих, если по крайней мере 80 % штриха находится в пределах 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

Комментарии

HitTest Метод подключается в первый и последний точки в lassoPoints для создания лассо.

Применяется к

HitTest(IEnumerable<Point>, StylusShape)

Указывает, пересекается ли указанный путь с Stroke, использующим заданную 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

Параметры

path
IEnumerable<Point>

Путь, stylusShape следующий за тестированием попадания.

stylusShape
StylusShape

Форма path, на пересечение с которым выполняется проверка.

Возвращаемое значение

Boolean

true, если stylusShape пересекает текущий росчерк, иначе false.

Примеры

Следующий код отображает фиолетовый штрих, если штрих пересекается с путем 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

Комментарии

Метод HitTest используется stylusShape для проверки удара по росчерку.eraserPath

Применяется к

HitTest(Point, Double)

Возвращает значение, указывающее, пересекает ли текущий Stroke заданную область.

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

Параметры

point
Point

Point, определяющая центр области проверки попадания.

diameter
Double

Диаметр области проверки попадания.

Возвращаемое значение

Boolean

true, если указанная область пересекается с текущим росчерком, иначе false.

Примеры

В следующем примере изменяется цвет объекта, Stroke если он пересекается с определенной областью.

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

Применяется к

HitTest(Rect, Int32)

Возвращает значение, которое указывает, находится ли Stroke в пределах заданного прямоугольника.

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

Параметры

bounds
Rect

Структура Rect, которая представляет границы области проверки нажатия.

percentageWithinBounds
Int32

Процент длины Stroke, которая должна попадать в percentageWithinBounds, чтобы для расположения Stroke было определено попадание.

Возвращаемое значение

Boolean

true, если текущее нажатие находится в пределах bounds; в противном случае — false.

Примеры

В следующем примере отрисовывается фиолетовый штрих, если в пределах росчерка находится по крайней мере 80 % штриха 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

Применяется к