StreamGeometryContext.BezierTo(Point, Point, Point, Boolean, Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Disegna una curva di Bézier nel punto specificato.
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)
Parametri
- point1
- Point
Primo punto di controllo utilizzato per specificare la forma della curva.
- point2
- Point
Secondo punto di controllo utilizzato per specificare la forma della curva.
- point3
- 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 di Bezier usando il BezierTo metodo .
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
Commenti
Una curva di Bézier cubica è definita da un punto iniziale, un punto finale e due punti di controllo. Il primo punto di controllo determina la curvatura della prima metà del segmento e il secondo punto di controllo determina la curvatura della seconda metà del segmento.
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.