Partilhar via


StrokeCollection.HitTest Método

Definição

Retorna uma coleção de traços contidos na área especificada.

Sobrecargas

HitTest(Rect, Int32)

Retorna uma coleção de traços que contém pelo menos o percentual especificado do tamanho dentro do retângulo especificado.

HitTest(Point, Double)

Retorna uma coleção de traços que se interseccionam na área especificada.

HitTest(IEnumerable<Point>, StylusShape)

Retorna uma coleção de traços que se interseccionam com o caminho especificado.

HitTest(IEnumerable<Point>, Int32)

Retorna uma coleção de traços que contém pelo menos o percentual especificado do tamanho dentro da área especificada.

HitTest(Point)

Retorna uma coleção de traços que se interseccionam no ponto especificado.

HitTest(Rect, Int32)

Retorna uma coleção de traços que contém pelo menos o percentual especificado do tamanho dentro do retângulo especificado.

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

Parâmetros

bounds
Rect

Um Rect que especifica os limites do teste de clique.

percentageWithinBounds
Int32

O tamanho mínimo necessário de um Traço que deve existir dentro dos limites para ele ser considerado uma ocorrência.

Retornos

StrokeCollection

Um StrokeCollection que tem traços com pelo menos o percentual especificado dentro do Rect.

Exemplos

O exemplo a Rectseguir apaga os traços que estão pelo menos 50% dentro dos limites do . Este exemplo pressupõe que haja um InkPresenter chamado presenter.

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)

Aplica-se a

HitTest(Point, Double)

Retorna uma coleção de traços que se interseccionam na área especificada.

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

Parâmetros

point
Point

O Point ao qual será aplicado o teste de clique.

diameter
Double

O tamanho da área em torno do Point que passará pelo teste de clique.

Retornos

StrokeCollection

Uma coleção de objetos Stroke que interseccionam o ponto especificado.

Exemplos

O exemplo a seguir demonstra como obter os traços que cruzam o especificado Point. Este exemplo pressupõe que haja um InkPresenter chamado presenter.

// 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

Aplica-se a

HitTest(IEnumerable<Point>, StylusShape)

Retorna uma coleção de traços que se interseccionam com o caminho especificado.

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

Parâmetros

path
IEnumerable<Point>

Uma matriz do tipo Point que representa o caminho do teste de clique.

stylusShape
StylusShape

O StylusShape que especifica a forma de eraserPath.

Retornos

StrokeCollection

Um StrokeCollection de traços que se interseccionam com path.

Exemplos

O exemplo a Point seguir altera a cor de todos os traços que cruzam o caminho criado pela matriz. Este exemplo pressupõe que haja um InkPresenter chamado presenter.

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

Aplica-se a

HitTest(IEnumerable<Point>, Int32)

Retorna uma coleção de traços que contém pelo menos o percentual especificado do tamanho dentro da área especificada.

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

Parâmetros

lassoPoints
IEnumerable<Point>

Uma matriz do tipo Point que representa os limites da área que passará por teste de clique.

percentageWithinLasso
Int32

O comprimento aceitável do Stroke, como um percentual, que lassoPoints deverá conter.

Retornos

StrokeCollection

Um StrokeCollection que tem traços com pelo menos o percentual especificado dentro da matriz Point.

Exceções

lassoPoints é null.

- ou - percentageWithinLasso é null.

lassoPoints contém uma matriz vazia.

percentageWithinLasso é menor que 0 ou maior que 100.

Exemplos

O exemplo a seguir demonstra como remover todos os traços que são pelo menos 80% dentro do laço especificado de um StrokeCollection. Isso é útil quando um controle personalizado permite que o usuário selecione tinta com um laço. Para criar um controle que permita que um usuário selecione tinta com um laço, consulte Como selecionar Tinta em um Controle Personalizado.

// 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

Aplica-se a

HitTest(Point)

Retorna uma coleção de traços que se interseccionam no ponto especificado.

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

Parâmetros

point
Point

O ponto para fazer o teste de clique.

Retornos

StrokeCollection

Uma coleção de objetos Stroke que interseccionam o ponto especificado.

Exemplos

O exemplo a seguir demonstra como obter os traços que cruzam o especificado Point. Este exemplo pressupõe que haja um InkPresenter chamado presenter.

// 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

Aplica-se a