Partager via


IncrementalHitTester.AddPoint(Point) Méthode

Définition

Ajoute un objet Point à IncrementalHitTester.

public:
 void AddPoint(System::Windows::Point point);
public void AddPoint (System.Windows.Point point);
member this.AddPoint : System.Windows.Point -> unit
Public Sub AddPoint (point As Point)

Paramètres

point
Point

Point à ajouter à IncrementalHitTester.

Exemples

L’exemple suivant montre comment ajouter des points au IncrementalHitTester lorsque l’utilisateur entre des données avec la souris. L’exemple inclut un gestionnaire d’événements StrokeHit qui efface la partie du Stroke que l’utilisateur croise. Pour créer un contrôle qui permet à un utilisateur d’effacer des entrées manuscrites, consultez How to: Erase Ink on a Custom Control.

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonDown(e);

    if (e.StylusDevice != null)
    {
        return;
    }

    EllipseStylusShape eraserTip = new EllipseStylusShape(3, 3, 0);
    eraseTester =
        presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip);
    eraseTester.StrokeHit += new StrokeHitEventHandler(eraseTester_StrokeHit);
    eraseTester.AddPoint(e.GetPosition(this));
}

protected override void OnMouseMove(MouseEventArgs e)
{
    base.OnMouseMove(e);
    
    if (e.StylusDevice != null || eraseTester == null)
    {
        return;
    }

    if (eraseTester.IsValid)
    {
        eraseTester.AddPoint(e.GetPosition(this));
    }
}

protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonUp(e);

    if (e.StylusDevice != null)
    {
        return;
    }

    eraseTester.AddPoint(e.GetPosition(this));
    eraseTester.StrokeHit -= new
        StrokeHitEventHandler(eraseTester_StrokeHit);
    eraseTester.EndHitTesting();
}
Protected Overrides Sub OnMouseLeftButtonDown(ByVal e As MouseButtonEventArgs)

    MyBase.OnMouseLeftButtonDown(e)

    If Not e.StylusDevice Is Nothing Then
        Return
    End If

    Dim eraserTip As EllipseStylusShape = New EllipseStylusShape(3, 3, 0)
    eraseTester = _
        presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip)
    AddHandler eraseTester.StrokeHit, _
        AddressOf eraseTester_StrokeHit
    eraseTester.AddPoint(e.GetPosition(Me))

End Sub

Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)

    If Not e.StylusDevice Is Nothing Or eraseTester Is Nothing Then
        Return
    End If

    If (eraseTester.IsValid) Then
        eraseTester.AddPoint(e.GetPosition(Me))
    End If
End Sub

Protected Overrides Sub OnMouseLeftButtonUp(ByVal e As MouseButtonEventArgs)
    MyBase.OnMouseLeftButtonUp(e)

    If Not e.StylusDevice Is Nothing Then
        Return
    End If

    eraseTester.AddPoint(e.GetPosition(Me))
    RemoveHandler eraseTester.StrokeHit, _
        AddressOf eraseTester_StrokeHit
    eraseTester.EndHitTesting()
End Sub
// When the stylus intersects a stroke, erase that part of
// the stroke.  When the stylus dissects a stoke, the 
// Stroke.Erase method returns a StrokeCollection that contains
// the two new strokes.
void eraseTester_StrokeHit(object sender,
    StrokeHitEventArgs args)
{
    StrokeCollection eraseResult =
        args.GetPointEraseResults();
    StrokeCollection strokesToReplace = new StrokeCollection();
    strokesToReplace.Add(args.HitStroke);
   
    // Replace the old stroke with the new one.
    if (eraseResult.Count > 0)
    {
        presenter.Strokes.Replace(strokesToReplace, eraseResult);
    }
    else
    {
        presenter.Strokes.Remove(strokesToReplace);
    }
}
' When the stylus intersects a stroke, erase that part of
' the stroke.  When the stylus dissects a stoke, the 
' Stroke.Erase method returns a StrokeCollection that contains
' the two new strokes.
Private Sub eraseTester_StrokeHit(ByVal sender As Object, _
        ByVal args As StrokeHitEventArgs)

    Dim eraseResult As StrokeCollection = _
        args.GetPointEraseResults()
    Dim strokesToReplace As New StrokeCollection()
    strokesToReplace.Add(args.HitStroke)

    ' Replace the old stroke with the new one.
    If eraseResult.Count > 0 Then
        presenter.Strokes.Replace(strokesToReplace, eraseResult)
    Else
        presenter.Strokes.Remove(strokesToReplace)
    End If

End Sub

S’applique à