StreamGeometryContext.BezierTo(Point, Point, Point, Boolean, Boolean) Método

Definición

Dibuja una curva Bezier en el punto especificado.

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

Parámetros

point1
Point

Primer punto de control usado para especificar la forma de la curva.

point2
Point

Segundo punto de control usado para especificar la forma de la curva.

point3
Point

Punto de destino para el final de la curva.

isStroked
Boolean

true es para que el segmento se trazos cuando se usa para Pen representar el segmento; de lo contrario, falsees .

isSmoothJoin
Boolean

true es para tratar la combinación entre este segmento y el segmento anterior como una esquina cuando se trazos con ; Penen caso contrario, falsees .

Excepciones

Se intentó agregar un segmento sin iniciar una figura llamando al BeginFigure(Point, Boolean, Boolean) método .

Ejemplos

En el ejemplo siguiente se muestra cómo dibujar una curva Bezier mediante el BezierTo método .

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

namespace SDKSample
{
    public partial class StreamGeometryBezierToExample : Page
    {
        public StreamGeometryBezierToExample()
        {

            // 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 Bezier curve using the 3 specifed points where the first two points
                // are control points and the last point is the destination point for the curve.
                ctx.BezierTo(new Point(100, 0), new Point(200,200), new Point(300,100), 
                             true /* is stroked */, false /* is smooth join */);
            }

            // Create a path to draw a geometry with.
            Path myPath = new Path();
            myPath.Stroke = Brushes.Black;
            myPath.StrokeThickness = 1;

            // 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

Namespace SDKSample
    Partial Public Class StreamGeometryBezierToExample
        Inherits Page
        Public Sub New()

            ' 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 Bezier curve using the 3 specifed points where the first two points
                ' are control points and the last point is the destination point for the curve.
                ctx.BezierTo(New Point(100, 0), New Point(200,200), New Point(300,100), True, False) ' is smooth join  -  is stroked 

            End Using

            ' Create a path to draw a geometry with.
            Dim myPath As New Path()
            myPath.Stroke = Brushes.Black
            myPath.StrokeThickness = 1

            ' 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

Comentarios

Una curva Bezier cúbica se define mediante un punto de inicio, un punto final y dos puntos de control. El primer punto de control determina la curvatura de la primera mitad del segmento y el segundo punto de control determina la curvatura de la segunda mitad del segmento.

Este método usa el punto final del segmento anterior como punto de partida. Si este es el primer segmento de una ilustración, usa el punto especificado por el BeginFigure método como punto de inicio.

No StreamGeometry se puede serializar si contiene o Transform ningún segmento no rellenado o no rellenado.

Se aplica a

Consulte también