StrokeCollection.HitTest メソッド

定義

指定された領域内に含まれるストロークのコレクションを返します。

オーバーロード

HitTest(Rect, Int32)

指定した四角形の中にある、指定したパーセンテージ以上の長さのストロークのコレクションを返します。

HitTest(Point, Double)

指定した領域と交差するストロークのコレクションを返します。

HitTest(IEnumerable<Point>, StylusShape)

指定したパスと交差するストロークのコレクションを返します。

HitTest(IEnumerable<Point>, Int32)

指定した領域内にある、指定したパーセンテージ以上の長さのストロークのコレクションを返します。

HitTest(Point)

指定した点と交差するストロークのコレクションを返します。

HitTest(Rect, Int32)

指定した四角形の中にある、指定したパーセンテージ以上の長さのストロークのコレクションを返します。

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Rect bounds, int percentageWithinBounds);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Rect bounds, int percentageWithinBounds);
member this.HitTest : System.Windows.Rect * int -> System.Windows.Ink.StrokeCollection
Public Function HitTest (bounds As Rect, percentageWithinBounds As Integer) As StrokeCollection

パラメーター

bounds
Rect

ヒット テスト対象の境界を指定する Rect

percentageWithinBounds
Int32

ヒットしたと見なされるために境界内に存在する必要があるストロークの必要最小限の長さ。

戻り値

指定したパーセンテージ以上のストロークを StrokeCollection 内に含む Rect

次の例では、 の境界内の少なくとも 50% のストロークを Rect消去します。 この例では、 と呼ばれる presenterがあることをInkPresenter前提としています。

Rect rect = new Rect(100, 100, 200, 200);
StrokeCollection strokes = presenter.Strokes.HitTest(rect, 50);

presenter.Strokes.Remove(strokes);
Dim rect As Rect = New Rect(100, 100, 200, 200)
Dim strokes As StrokeCollection = presenter.Strokes.HitTest(rect, 50)

presenter.Strokes.Remove(strokes)

適用対象

HitTest(Point, Double)

指定した領域と交差するストロークのコレクションを返します。

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Point point, double diameter);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Point point, double diameter);
member this.HitTest : System.Windows.Point * double -> System.Windows.Ink.StrokeCollection
Public Function HitTest (point As Point, diameter As Double) As StrokeCollection

パラメーター

point
Point

ヒット テストを行う対象の Point

diameter
Double

ヒット テストを行う Point の周辺領域のサイズ。

戻り値

指定した点と交差する Stroke オブジェクトのコレクション。

次の例では、指定した Pointと交差するストロークを取得する方法を示します。 この例では、 と呼ばれる presenterがあることをInkPresenter前提としています。

// Change the color of all the strokes at the specified position.
public void SelectStrokes(Point position)
{
    StrokeCollection selected = presenter.Strokes.HitTest(position, 5);

    foreach (Stroke s in selected)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
' Change the color of all the strokes at the specified position.
Public Sub SelectStrokes(ByVal position As Point)

    Dim selected As StrokeCollection = presenter.Strokes.HitTest(position, 5)

    Dim s As Stroke
    For Each s In selected
        s.DrawingAttributes.Color = Colors.Purple
    Next s

End Sub

適用対象

HitTest(IEnumerable<Point>, StylusShape)

指定したパスと交差するストロークのコレクションを返します。

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Collections::Generic::IEnumerable<System::Windows::Point> ^ path, System::Windows::Ink::StylusShape ^ stylusShape);
public System.Windows.Ink.StrokeCollection 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 -> System.Windows.Ink.StrokeCollection
Public Function HitTest (path As IEnumerable(Of Point), stylusShape As StylusShape) As StrokeCollection

パラメーター

path
IEnumerable<Point>

ヒット テスト対象のパスを表す Point 型の配列。

stylusShape
StylusShape

eraserPath の形状を指定する StylusShape

戻り値

path と交差するストロークの StrokeCollection

次の例では、配列によって作成されたパスと交差するすべてのストロークの色を Point 変更します。 この例では、 と呼ばれる presenterがあることをInkPresenter前提としています。

private void HitTestWithEraser(Point[] points)
{
    RectangleStylusShape eraser = new RectangleStylusShape(3, 3, 0);

    StrokeCollection strokes = presenter.Strokes.HitTest(points, eraser);

    foreach (Stroke s in strokes)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
Private Sub HitTestWithEraser(ByVal points() As Point)
    Dim eraser As RectangleStylusShape = New RectangleStylusShape(3, 3, 0)

    Dim strokes As StrokeCollection = presenter.Strokes.HitTest(points, eraser)

    Dim s As Stroke
    For Each s In strokes
        s.DrawingAttributes.Color = Colors.Purple
    Next
End Sub

適用対象

HitTest(IEnumerable<Point>, Int32)

指定した領域内にある、指定したパーセンテージ以上の長さのストロークのコレクションを返します。

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Collections::Generic::IEnumerable<System::Windows::Point> ^ lassoPoints, int percentageWithinLasso);
public System.Windows.Ink.StrokeCollection HitTest (System.Collections.Generic.IEnumerable<System.Windows.Point> lassoPoints, int percentageWithinLasso);
member this.HitTest : seq<System.Windows.Point> * int -> System.Windows.Ink.StrokeCollection
Public Function HitTest (lassoPoints As IEnumerable(Of Point), percentageWithinLasso As Integer) As StrokeCollection

パラメーター

lassoPoints
IEnumerable<Point>

ヒット テスト対象の領域の境界を表す Point 型の配列。

percentageWithinLasso
Int32

lassoPoints に格納される、受け入れ可能な Stroke の長さ (パーセンテージ)。

戻り値

指定したパーセンテージ以上のストロークを StrokeCollection 配列内に含む Point

例外

lassoPointsnullです。

または

percentageWithinLassonullです。

lassoPoints に空の配列が格納されています。

percentageWithinLasso が 0 より小さいか、100 を超えています。

次の例では、 から指定したなげなわ内の少なくとも 80% のストロークをすべて削除する方法を StrokeCollection示します。 これは、ユーザーがなげなわを使用してインクを選択できるカスタム コントロールの場合に便利です。 ユーザーがなげなわでインクを選択できるようにするコントロールを作成するには、「 方法: カスタム コントロールからインクを選択する」を参照してください。

// Remove the strokes within the lasso from the InkPresenter
public void RemoveStrokes(Point[] lasso)
{
    StrokeCollection strokes = presenter.Strokes.HitTest(lasso, 80);

    presenter.Strokes.Remove(strokes);
}
' Remove the strokes within the lasso from the InkPresenter
Public Sub RemoveStrokes(ByVal lasso As Point())

    If lasso Is Nothing Then
        Return
    End If

    Dim strokes As StrokeCollection = _
        presenter.Strokes.HitTest(lasso, 80)

    presenter.Strokes.Remove(strokes)

End Sub

適用対象

HitTest(Point)

指定した点と交差するストロークのコレクションを返します。

public:
 System::Windows::Ink::StrokeCollection ^ HitTest(System::Windows::Point point);
public System.Windows.Ink.StrokeCollection HitTest (System.Windows.Point point);
member this.HitTest : System.Windows.Point -> System.Windows.Ink.StrokeCollection
Public Function HitTest (point As Point) As StrokeCollection

パラメーター

point
Point

ヒット テストの対象となる点。

戻り値

指定した点と交差する Stroke オブジェクトのコレクション。

次の例では、指定した Pointと交差するストロークを取得する方法を示します。 この例では、 と呼ばれる presenterがあることをInkPresenter前提としています。

// Change the color of all the strokes at the specified position.
public void SelectStrokes(Point position)
{
    StrokeCollection selected = presenter.Strokes.HitTest(position, 5);

    foreach (Stroke s in selected)
    {
        s.DrawingAttributes.Color = Colors.Purple;
    }
}
' Change the color of all the strokes at the specified position.
Public Sub SelectStrokes(ByVal position As Point)

    Dim selected As StrokeCollection = presenter.Strokes.HitTest(position, 5)

    Dim s As Stroke
    For Each s In selected
        s.DrawingAttributes.Color = Colors.Purple
    Next s

End Sub

適用対象