Export (0) Print
Expand All

Stroke.HitTest Method

Silverlight

Indicates whether a specified StylusPointCollection intersects with a Stroke object.

Namespace:  System.Windows.Ink
Assembly:  System.Windows (in System.Windows.dll)

public bool HitTest(
	StylusPointCollection stylusPointCollection
)

Parameters

stylusPointCollection
Type: System.Windows.Input.StylusPointCollection
The StylusPointCollection used to check for intersection with the Stroke object.

Return Value

Type: System.Boolean
true if the specified StylusPointCollection intersects with the Stroke object; otherwise, false.

The following code demonstrates the HitTest method. If you draw a stroke that intersects an existing stroke, the color of the existing stroke changes to red.

Run this sample


Stroke MyStroke;

//A new stroke object named MyStroke is created. MyStroke is added to the StrokeCollection of the InkPresenter named MyIP
private void MyIP_MouseLeftButtonDown(object sender, MouseEventArgs e)
{
    MyIP.CaptureMouse();

    StylusPointCollection MyStylusPointCollection = new StylusPointCollection();
    MyStylusPointCollection.Add(e.StylusDevice.GetStylusPoints(MyIP));

    MyStroke = new Stroke(MyStylusPointCollection);
    MyStroke.DrawingAttributes.Color = Colors.Yellow;
    MyStroke.DrawingAttributes.Width = 8;

    MyIP.Strokes.Add(MyStroke);
}

//StylusPoint objects are collected from the MouseEventArgs and added to MyStroke. 
private void MyIP_MouseMove(object sender, MouseEventArgs e)
{
    if (MyStroke != null)
    {
        MyStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(MyIP));

        //Iterate through the stroke collection
        for (int i = 0; i < MyIP.Strokes.Count - 1; i++)
        {
            Stroke HitStroke = MyIP.Strokes[i];
            //If the new stroke intersects with an existing stroke, the color of the 
            //existing stroke is changed to red.
            if (HitStroke.HitTest(e.StylusDevice.GetStylusPoints(MyIP)))
                HitStroke.DrawingAttributes.Color = Colors.Red;
        }
    }
}

//MyStroke is completed
private void MyIP_LostMouseCapture(object sender, MouseEventArgs e)
{
    MyStroke = null;
}


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2014 Microsoft