StreamGeometryContext.PolyBezierTo Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee tekent u een of meer verbonden Bezier-curven.
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)
Parameters
De lijst met punten die besturingspunten en doelpunten opgeven voor een of meer Bezier-curven. Het aantal punten in deze lijst moet een veelvoud van drie zijn.
- isStroked
- Boolean
trueom het segment te laten stroken wanneer een Pen wordt gebruikt om het segment weer te geven; anders. false
- isSmoothJoin
- Boolean
true om de samenvoeging tussen dit segment en het vorige segment te behandelen als een hoek wanneer deze met een Pen; anders wordt falsegestreken.
Uitzonderingen
Er is geprobeerd een segment toe te voegen zonder een figuur te starten door de BeginFigure(Point, Boolean, Boolean) methode aan te roepen.
Voorbeelden
In het volgende voorbeeld ziet u hoe u meerdere verbonden Bezier-curven tekent met behulp van de PolyBezierTo methode.
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
Opmerkingen
Het eerste punt in points specificeert het eerste besturingspunt, de volgende specificeert het tweede besturingspunt, het derde punt het eindpunt, het volgende punt specificeert het eerste besturingspunt van de volgende curve, enzovoort.
Deze methode gebruikt het eindpunt van het vorige segment als uitgangspunt. Als dit het eerste segment in een afbeelding is, wordt het punt gebruikt dat door de BeginFigure methode is opgegeven als beginpunt.
Een StreamGeometry kan niet worden geserialiseerd als deze een Transform of meer niet-gestreken of niet-gevulde segmenten bevat.