StreamGeometryContext.QuadraticBezierTo 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
绘制一条二次贝塞尔曲线。
public:
abstract void QuadraticBezierTo(System::Windows::Point point1, System::Windows::Point point2, bool isStroked, bool isSmoothJoin);
public abstract void QuadraticBezierTo (System.Windows.Point point1, System.Windows.Point point2, bool isStroked, bool isSmoothJoin);
abstract member QuadraticBezierTo : System.Windows.Point * System.Windows.Point * bool * bool -> unit
Public MustOverride Sub QuadraticBezierTo (point1 As Point, point2 As Point, isStroked As Boolean, isSmoothJoin As Boolean)
参数
- point1
- Point
用于指定曲线形状的控制点。
- point2
- Point
曲线末尾的目标点。
例外
试图添加一条线段,但未通过调用 BeginFigure(Point, Boolean, Boolean) 方法来指定图形的起点。
示例
以下示例演示如何使用 QuadraticBezierTo 该方法绘制二次贝塞尔曲线。
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace SDKSample
{
public partial class StreamGeometryQuadraticBezierToExample : Page
{
public StreamGeometryQuadraticBezierToExample()
{
// 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();
// 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 Quadratic Bezier curve using the 2 specifed points. The first point
// specifies the control point while the second point specifies the end point
// of the curve.
ctx.QuadraticBezierTo(new Point(100, 0), new Point(200, 200), true /* is stroked */,
false /* is smooth join */);
}
// Freeze the geometry (make it unmodifiable)
// for additional performance benefits.
geometry.Freeze();
// specify the shape (quadratic 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 StreamGeometryQuadraticBezierToExample
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()
' 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 Quadratic Bezier curve using the 2 specifed points. The first point
' specifies the control point while the second point specifies the end point
' of the curve.
ctx.QuadraticBezierTo(New Point(100, 0), New Point(200, 200), True, False) ' is smooth join - is stroked
End Using
' Freeze the geometry (make it unmodifiable)
' for additional performance benefits.
geometry.Freeze()
' specify the shape (quadratic 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
注解
与使用两个控制点的立方贝塞尔曲线不同,二次立方贝塞尔曲线使用单个控制点。
此方法使用上一段的终点作为起点。 如果这是图中的第一段,则使用方法指定的 BeginFigure 点作为起点。
如果它包含非Transform笔划或未填充段,则无法序列化 AStreamGeometry。