StreamGeometryContext.PolyLineTo(IList<Point>, Boolean, Boolean) StreamGeometryContext.PolyLineTo(IList<Point>, Boolean, Boolean) StreamGeometryContext.PolyLineTo(IList<Point>, Boolean, Boolean) StreamGeometryContext.PolyLineTo(IList<Point>, Boolean, Boolean) Method

Definition

Draws one or more connected straight lines.

public:
 abstract void PolyLineTo(System::Collections::Generic::IList<System::Windows::Point> ^ points, bool isStroked, bool isSmoothJoin);
public abstract void PolyLineTo (System.Collections.Generic.IList<System.Windows.Point> points, bool isStroked, bool isSmoothJoin);
abstract member PolyLineTo : System.Collections.Generic.IList<System.Windows.Point> * bool * bool -> unit
Public MustOverride Sub PolyLineTo (points As IList(Of Point), isStroked As Boolean, isSmoothJoin As Boolean)

Parameters

points
IList<Point>

The collection of points that specify destination points for one or more connected straight lines.

isStroked
Boolean Boolean Boolean Boolean

true to make the segment stroked when a Pen is used to render the segment; otherwise, false.

isSmoothJoin
Boolean Boolean Boolean Boolean

true to treat the join between this segment and the previous segment as a corner when stroked with a Pen; otherwise, false.

Exceptions

An attempt was made to add a segment without starting a figure by calling the BeginFigure(Point, Boolean, Boolean) method.

Examples

The following example shows how to draw a triangle using the PolyLineTo method.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Collections.Generic;

namespace SDKSample
{
    public partial class StreamGeometryPolyLineToExample : Page
    {
        public StreamGeometryPolyLineToExample()
        {
            // Create a path to draw a geometry with.
            Path myPath = new Path();
            myPath.Stroke = Brushes.Black;
            myPath.StrokeThickness = 1;

            // Create a StreamGeometry to use to specify myPath.
            StreamGeometry geometry = new StreamGeometry();

            // Open a StreamGeometryContext that can be used to describe this StreamGeometry 
            // object's contents. 
            using (StreamGeometryContext ctx = geometry.Open())
            {
                // Begin the triangle at the point specified.
                ctx.BeginFigure(new Point(10, 100), true /* is filled */, true /* is closed */);

                // Create a collection of Point structures that will be used with the PolyLineTo 
                // Method to create a triangle.
                List<Point> pointList = new List<Point>();

                // Two Points are added to the collection. The PolyLineTo method will draw lines
                // between the Points of the collection.
                pointList.Add(new Point(100, 100));
                pointList.Add(new Point(100, 50));

                // Create a triangle using the collection of Point Structures.
                ctx.PolyLineTo(pointList, true /* is stroked */, false /* is smooth join */);

            }

            // Freeze the geometry (make it unmodifiable)
            // for additional performance benefits.
            geometry.Freeze();
            
            // specify the shape (triangle) of the path using the StreamGeometry.
            myPath.Data = geometry;

            // Add path shape to the UI.
            StackPanel mainPanel = new StackPanel();
            mainPanel.Children.Add(myPath);
            this.Content = mainPanel;
        }
    }
}

Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Imports System.Collections.Generic

Namespace SDKSample
	Partial Public Class StreamGeometryPolyLineToExample
		Inherits Page
		Public Sub New()
			' Create a path to draw a geometry with.
			Dim myPath As New Path()
			myPath.Stroke = Brushes.Black
			myPath.StrokeThickness = 1

			' Create a StreamGeometry to use to specify myPath.
			Dim geometry As New StreamGeometry()

			' Open a StreamGeometryContext that can be used to describe this StreamGeometry 
			' object's contents. 
			Using ctx As StreamGeometryContext = geometry.Open()
				' Begin the triangle at the point specified.
				ctx.BeginFigure(New Point(10, 100), True, True) ' is closed  -  is filled 

				' Create a collection of Point structures that will be used with the PolyLineTo 
				' Method to create a triangle.
				Dim pointList As New List(Of Point)()

				' Two Points are added to the collection. The PolyLineTo method will draw lines
				' between the Points of the collection.
				pointList.Add(New Point(100, 100))
				pointList.Add(New Point(100, 50))

				' Create a triangle using the collection of Point Structures.
				ctx.PolyLineTo(pointList, True, False) ' is smooth join  -  is stroked 

			End Using

			' Freeze the geometry (make it unmodifiable)
			' for additional performance benefits.
			geometry.Freeze()

			' specify the shape (triangle) of the path using the StreamGeometry.
			myPath.Data = geometry

			' Add path shape to the UI.
			Dim mainPanel As New StackPanel()
			mainPanel.Children.Add(myPath)
			Me.Content = mainPanel
		End Sub
	End Class
End Namespace

Remarks

This method uses the end point of the previous segment as its starting point. If this is the first segment in a figure, it uses the point specified by the BeginFigure method as its start point.

A StreamGeometry cannot be serialized if it contains a Transform or any non-stroked or unfilled segments.

Applies to

See also