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
Параметры
Возвращаемое значение
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 было определено попадание.
Возвращаемое значение
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
, на пересечение с которым выполняется проверка.
Возвращаемое значение
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
Параметры
- diameter
- Double
Диаметр области проверки попадания.
Возвращаемое значение
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
Параметры
- percentageWithinBounds
- Int32
Процент длины Stroke, которая должна попадать в percentageWithinBounds
, чтобы для расположения Stroke было определено попадание.
Возвращаемое значение
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