StreamGeometryContext.PolyBezierTo 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 o più curve di Bézier collegate.
public:
abstract void PolyBezierTo(System::Collections::Generic::IList<System::Windows::Point> ^ points, bool isStroked, bool isSmoothJoin);
public abstract void PolyBezierTo (System.Collections.Generic.IList<System.Windows.Point> points, bool isStroked, bool isSmoothJoin);
abstract member PolyBezierTo : System.Collections.Generic.IList<System.Windows.Point> * bool * bool -> unit
Public MustOverride Sub PolyBezierTo (points As IList(Of Point), isStroked As Boolean, isSmoothJoin As Boolean)
Parametri
Elenco dei punti che specificano i punti di controllo e i punti di destinazione per una o più curve di Bézier. Il numero di punti contenuti in questo elenco deve essere un multiplo di tre.
- 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 connesse usando il PolyBezierTo 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 StreamGeometryPolyBezierToExample : Page
{
public StreamGeometryPolyBezierToExample()
{
// 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 PolyBezierTo
// Method to create the Bezier curve.
List<Point> pointList = new List<Point>();
// First Bezier curve is specified with these three points.
// First control point for first Bezier curve.
pointList.Add(new Point(100,0));
// Second control point for first Bezier curve.
pointList.Add(new Point(200, 200));
// Destination point for first Bezier curve.
pointList.Add(new Point(300, 100));
// Second Bezier curve is specified with these three points.
// First control point for second Bezier curve.
pointList.Add(new Point(400, 0));
// Second control point for second Bezier curve.
pointList.Add(new Point(500, 200));
// Destination point for second Bezier curve.
pointList.Add(new Point(600, 100));
// Create a Bezier curve using the collection of Point Structures.
ctx.PolyBezierTo(pointList, true /* is stroked */, false /* is smooth join */);
}
// 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
Imports System.Collections.Generic
Namespace SDKSample
Partial Public Class StreamGeometryPolyBezierToExample
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 PolyBezierTo
' Method to create the Bezier curve.
Dim pointList As New List(Of Point)()
' First Bezier curve is specified with these three points.
' First control point for first Bezier curve.
pointList.Add(New Point(100,0))
' Second control point for first Bezier curve.
pointList.Add(New Point(200, 200))
' Destination point for first Bezier curve.
pointList.Add(New Point(300, 100))
' Second Bezier curve is specified with these three points.
' First control point for second Bezier curve.
pointList.Add(New Point(400, 0))
' Second control point for second Bezier curve.
pointList.Add(New Point(500, 200))
' Destination point for second Bezier curve.
pointList.Add(New Point(600, 100))
' Create a Bezier curve using the collection of Point Structures.
ctx.PolyBezierTo(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 (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
Il primo punto in points
specifica il primo punto di controllo, il successivo specifica il secondo punto di controllo, il terzo punto specifica il punto finale, il punto successivo specifica il primo punto di controllo della curva successiva e così via.
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.