Windows Dev Center

Stroke.StylusPoints Property

Gets or sets the stylus points of the Stroke.

Namespace:  System.Windows.Ink
Assembly:  System.Windows (in System.Windows.dll)
XMLNS for XAML: Not mapped to an xmlns.

public StylusPointCollection StylusPoints { get; set; }
<Stroke>
  <Stroke.StylusPoints>
    oneOrMoreStylusPoints
  </Stroke.StylusPoints>
</Stroke>

XAML Values

oneOrMoreStylusPoints

One or more StylusPoint object elements. Each such StylusPoint typically has attribute values for X and Y.

Property Value

Type: System.Windows.Input.StylusPointCollection
The StylusPointCollection that contains the stylus points that represent the current Stroke.

The following code example uses the StylusPoints property to iterate through stylus points of the strokes drawn in the first InkPresenter control to display its mirror image in the second InkPresenter control.


Stroke MyStroke;

//A new stroke object named MyStroke is created. MyStroke is added to the StrokeCollection of the InkPresenter named MyIP1
private void MyIP1_MouseLeftButtonDown(object sender, MouseEventArgs e)
{
    MyIP1.CaptureMouse();
    StylusPointCollection MyStylusPointCollection = new StylusPointCollection();
    MyStylusPointCollection.Add(e.StylusDevice.GetStylusPoints(MyIP1));
    MyStroke = new Stroke(MyStylusPointCollection);
    MyIP1.Strokes.Add(MyStroke);
}

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

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

//Create the mirror image of the stroke collection in MyIP1 and adding it to MyIP2
private void BtMirror_Click(object sender, EventArgs e)
{
    //Iterate through the Strokes in the StrokeCollection of MyIP1
    foreach (Stroke stroke in MyIP1.Strokes)
    {
        StylusPointCollection newcollection = new StylusPointCollection();
        //Iterate through the stylus points of each stroke in MyIP1
        foreach (StylusPoint p in stroke.StylusPoints)
        {
            //Create the mirror image
            StylusPoint newpoint = new StylusPoint();
            newpoint.X = MyIP1.ActualWidth - p.X;
            newpoint.Y = p.Y;
            newcollection.Add(newpoint);
        }
        //Add the mirror image to MyIP2
        Stroke newStroke = new Stroke(newcollection);
        MyIP2.Strokes.Add(newStroke);
    }
}


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2015 Microsoft