Stroke.HitTest 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回 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
与当前笔画相交,则为 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(Point, Double) 方法在 1 时 diameter
的行为相同。
适用于
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 类型的数组,用于表示要进行命中测试的区域的边界。
返回
如果当前笔画位于指定边界内,则为 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
形状。
返回
如果 stylusShape
与当前笔画相交,则为 true
;否则为 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
参数
返回
如果当前笔划在 bounds
的边界内,则为 true
;否则为 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