Condividi tramite


StreamGeometryContext.PolyQuadraticBezierTo Metodo

Definizione

Disegna una o più curve di Bézier quadratiche collegate.

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

Parametri

points
IList<Point>

Insieme di punti che specificano i punti di controllo e i punti di destinazione per una o più curve di Bézier quadratiche. Il primo punto dell'elenco specifica il punto di controllo della curva, il punto successivo specifica il punto di destinazione, il punto ulteriormente seguente specifica il punto di controllo della curva successiva e così via. L'elenco deve contenere un numero pari di punti.

isStroked
Boolean

true per tracciare il segmento quando si utilizza un oggetto Pen per eseguire il rendering del segmento, altrimenti false.

isSmoothJoin
Boolean

true per trattare come un angolo il join tra questo segmento e quello precedente tracciato con un oggetto Pen, altrimenti false.

Eccezioni

Si è tentato di aggiungere un segmento senza iniziare una figura chiamando il metodo BeginFigure(Point, Boolean, Boolean).

Esempio

Nell'esempio seguente viene illustrato come disegnare più curve di Bezier quadratiche connesse usando il PolyQuadraticBezierTo metodo .

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 StreamGeometryPolyQuadraticBezierToExample : Page
    {
        public StreamGeometryPolyQuadraticBezierToExample()
        {
            // 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 PolyQuadraticBezierTo 
                // Method to create two quadratic Bezier curves.
                List<Point> pointList = new List<Point>();

                // First quadratic Bezier curve is specified with these two points.

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

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

                // Second quadratic Bezier curve is specified with these two points.

                // Control point for second quadratic Bezier curve.
                pointList.Add(new Point(300, 300));

                // End point for second quadratic Bezier curve.
                pointList.Add(new Point(400, 100));

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

            // Freeze the geometry (make it unmodifiable)
            // for additional performance benefits.
            geometry.Freeze();
            
            // specify the shape (quadratic Benzier 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 StreamGeometryPolyQuadraticBezierToExample
        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 PolyQuadraticBezierTo 
                ' Method to create two quadratic Bezier curves.
                Dim pointList As New List(Of Point)()

                ' First quadratic Bezier curve is specified with these two points.

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

                ' End point for first quadratic Bezier curve.
                pointList.Add(New Point(200, 200))

                ' Second quadratic Bezier curve is specified with these two points.

                ' Control point for second quadratic Bezier curve.
                pointList.Add(New Point(300, 300))

                ' End point for second quadratic Bezier curve.
                pointList.Add(New Point(400, 100))

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

Commenti

Questo metodo usa il punto finale del segmento precedente come punto iniziale. Se si tratta del primo segmento di una figura, usa il punto specificato dal BeginFigure metodo come punto iniziale.

Un StreamGeometry oggetto non può essere serializzato se contiene un oggetto o segmenti Transform non tracciati o non riempiti.

Si applica a

Vedi anche