Condividi tramite


StreamGeometryContext.QuadraticBezierTo Metodo

Definizione

Disegna una curva di Bézier quadratica.

public:
 abstract void QuadraticBezierTo(System::Windows::Point point1, System::Windows::Point point2, bool isStroked, bool isSmoothJoin);
public abstract void QuadraticBezierTo (System.Windows.Point point1, System.Windows.Point point2, bool isStroked, bool isSmoothJoin);
abstract member QuadraticBezierTo : System.Windows.Point * System.Windows.Point * bool * bool -> unit
Public MustOverride Sub QuadraticBezierTo (point1 As Point, point2 As Point, isStroked As Boolean, isSmoothJoin As Boolean)

Parametri

point1
Point

Punto di controllo utilizzato per specificare la forma della curva.

point2
Point

Punto di destinazione per la fine della curva.

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 una curva quadratica di Bezier usando il QuadraticBezierTo metodo .

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

namespace SDKSample
{
    public partial class StreamGeometryQuadraticBezierToExample : Page
    {
        public StreamGeometryQuadraticBezierToExample()
        {
            // 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())
            {
                // Set the begin point of the shape.
                ctx.BeginFigure(new Point(10, 100), true /* is filled */, false /* is closed */);

                // Create a Quadratic Bezier curve using the 2 specifed points. The first point
                // specifies the control point while the second point specifies the end point 
                // of the curve.
                ctx.QuadraticBezierTo(new Point(100, 0), new Point(200, 200), true /* is stroked */, 
                                      false /* is smooth join */);
            }

            // Freeze the geometry (make it unmodifiable)
            // for additional performance benefits.
            geometry.Freeze();
            
            // specify the shape (quadratic 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

Namespace SDKSample
    Partial Public Class StreamGeometryQuadraticBezierToExample
        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()
                ' Set the begin point of the shape.
                ctx.BeginFigure(New Point(10, 100), True, False) ' is closed  -  is filled 

                ' Create a Quadratic Bezier curve using the 2 specifed points. The first point
                ' specifies the control point while the second point specifies the end point 
                ' of the curve.
                ctx.QuadraticBezierTo(New Point(100, 0), New Point(200, 200), 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 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

Commenti

A differenza di una curva di Bezier cubica, che usa due punti di controllo, una curva di Bezier quadratica usa un singolo punto di controllo.

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

Un StreamGeometry oggetto non può essere serializzato se contiene un Transform o qualsiasi segmento non tratto o non riempito.

Si applica a

Vedi anche