다음을 통해 공유


StreamGeometryContext.PolyBezierTo 메서드

정의

하나 이상의 연결된 3차원 곡선을 그립니다.

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

매개 변수

points
IList<Point>

하나 이상의 3차원 곡선에 대한 제어점과 대상 점을 지정하는 점의 목록입니다. 이 목록의 점 수는 3의 배수여야 합니다.

isStroked
Boolean

세그먼트를 렌더링하기 위해 Pen을 사용할 때 세그먼트에 스트로크를 설정하려면 true이고, 그렇지 않으면 false입니다.

isSmoothJoin
Boolean

Pen을 사용하여 스트로크를 설정할 때 이 세그먼트와 이전 세그먼트 간의 연결을 모퉁이로 처리하려면 true이고, 그렇지 않으면 false입니다.

예외

BeginFigure(Point, Boolean, Boolean) 메서드를 호출하여 그림을 시작하지 않고 세그먼트를 추가하려고 시도한 경우

예제

다음 예제를 사용 하 여 연결 된 여러 베 지 어 곡선을 그리는 방법을 보여 줍니다는 PolyBezierTo 메서드.

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 StreamGeometryPolyBezierToExample : Page
    {
        public StreamGeometryPolyBezierToExample()
        {
            // 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();
            geometry.FillRule = FillRule.EvenOdd;

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

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

                // First Bezier curve is specified with these three points.

                // First control point for first Bezier curve.
                pointList.Add(new Point(100,0));

                // Second control point for first Bezier curve.
                pointList.Add(new Point(200, 200));

                // Destination point for first Bezier curve.
                pointList.Add(new Point(300, 100));

                // Second Bezier curve is specified with these three points.

                // First control point for second Bezier curve.
                pointList.Add(new Point(400, 0));

                // Second control point for second Bezier curve.
                pointList.Add(new Point(500, 200));

                // Destination point for second Bezier curve.
                pointList.Add(new Point(600, 100));

                // Create a Bezier curve using the collection of Point Structures.
                ctx.PolyBezierTo(pointList, true /* is stroked */, false /* is smooth join */);
            }

            // Freeze the geometry (make it unmodifiable)
            // for additional performance benefits.
            geometry.Freeze();
            
            // specify the shape (Bezier curve) 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.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Imports System.Collections.Generic

Namespace SDKSample
    Partial Public Class StreamGeometryPolyBezierToExample
        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()
            geometry.FillRule = FillRule.EvenOdd

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

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

                ' First Bezier curve is specified with these three points.

                ' First control point for first Bezier curve.
                pointList.Add(New Point(100,0))

                ' Second control point for first Bezier curve.
                pointList.Add(New Point(200, 200))

                ' Destination point for first Bezier curve.
                pointList.Add(New Point(300, 100))

                ' Second Bezier curve is specified with these three points.

                ' First control point for second Bezier curve.
                pointList.Add(New Point(400, 0))

                ' Second control point for second Bezier curve.
                pointList.Add(New Point(500, 200))

                ' Destination point for second Bezier curve.
                pointList.Add(New Point(600, 100))

                ' Create a Bezier curve using the collection of Point Structures.
                ctx.PolyBezierTo(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 (Bezier curve) 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

설명

첫 번째 지점 points 첫 번째 제어점을 지정 합니다. 다음 두 번째 제어점을 지정, 세 번째 점과 끝점을 지정 하 고, 다음 점이 다음 곡선의 첫째 제어점을 지정 합니다.

이 메서드는 시작 지점으로 이전 세그먼트의 끝점을 사용 합니다. 이 그림에서 첫 번째 세그먼트를 통해 지정한 점을 사용 합니다 BeginFigure 메서드 시작 지점으로 합니다.

A StreamGeometry 포함 된 경우 직렬화 할 수 없습니다는 Transform 스트로크 되지 않은 모든 또는 채워지지 않은 세그먼트입니다.

적용 대상

추가 정보