Sdílet prostřednictvím


StreamGeometryContext.BezierTo(Point, Point, Point, Boolean, Boolean) Metoda

Definice

Nakreslí bezierovou křivku do zadaného bodu.

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)

Parametry

point1
Point

První řídicí bod použitý k určení tvaru křivky.

point2
Point

Druhý ovládací bod použitý k určení tvaru křivky.

point3
Point

Cílový bod konce křivky.

isStroked
Boolean

true aby segment byl tahaný, pokud Pen se používá k vykreslení segmentu; v opačném případě false.

isSmoothJoin
Boolean

true k léčbě spojení mezi tímto segmentem a předchozím segmentem jako s rohem při tahu Penpomocí ; v opačném případě false.

Výjimky

Došlo k pokusu o přidání segmentu bez spuštění obrázku BeginFigure(Point, Boolean, Boolean) voláním metody.

Příklady

Následující příklad ukazuje, jak pomocí metody nakreslit bezierovou křivku BezierTo .

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

Poznámky

Krychlová bezierová křivka je definována počátečním bodem, koncovým bodem a dvěma řídicími body. První kontrolní bod určuje zakřivení první poloviny segmentu a druhý kontrolní bod určuje zakřivení druhé poloviny segmentu.

Tato metoda používá koncový bod předchozího segmentu jako jeho výchozí bod. Pokud se jedná o první segment na obrázku, použije bod určený metodou BeginFigure jako počáteční bod.

Nelze StreamGeometry serializovat, pokud obsahuje Transform nebo žádné neškrtené nebo nenaplněné segmenty.

Platí pro

Viz také