StreamGeometryContext.ArcTo 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
繪製弧形至指定的點。
public:
abstract void ArcTo(System::Windows::Point point, System::Windows::Size size, double rotationAngle, bool isLargeArc, System::Windows::Media::SweepDirection sweepDirection, bool isStroked, bool isSmoothJoin);
public abstract void ArcTo (System.Windows.Point point, System.Windows.Size size, double rotationAngle, bool isLargeArc, System.Windows.Media.SweepDirection sweepDirection, bool isStroked, bool isSmoothJoin);
abstract member ArcTo : System.Windows.Point * System.Windows.Size * double * bool * System.Windows.Media.SweepDirection * bool * bool -> unit
Public MustOverride Sub ArcTo (point As Point, size As Size, rotationAngle As Double, isLargeArc As Boolean, sweepDirection As SweepDirection, isStroked As Boolean, isSmoothJoin As Boolean)
參數
- point
- Point
弧形結尾的目的點。
- size
- Size
其圓周用來繪製角度之橢圓形的半徑 (寬度的一半和高度的一半)。 如果橢圓形會以所有方向四捨五入,則弧形會四捨五入,如果接近平面,則弧線也會四捨五入,因此弧線也會四捨五入。例如,非常大的寬度和高度代表非常大的橢圓形,這會為角度提供稍微的曲線。
- rotationAngle
- Double
指定曲線之橢圓形的旋轉角度。 而弧形曲率可以利用這個參數進行旋轉。
- isLargeArc
- Boolean
true
表示繪製大於 180 度的弧度,否則為 false
。
- sweepDirection
- SweepDirection
值,表示是以 Clockwise 或 Counterclockwise 方向繪製弧形。
範例
下列範例示範如何使用 方法繪製弧線 ArcTo 。
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace SDKSample
{
public partial class StreamGeometryArcToExample : Page
{
public StreamGeometryArcToExample()
{
// 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 an arc. Draw the arc from the begin point to 200,100 with the specified parameters.
ctx.ArcTo(new Point(200, 100), new Size(100, 50), 45 /* rotation angle */, true /* is large arc */,
SweepDirection.Counterclockwise, true /* is stroked */, false /* is smooth join */);
}
// Freeze the geometry (make it unmodifiable)
// for additional performance benefits.
geometry.Freeze();
// specify the shape (arc) 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 StreamGeometryArcToExample
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 an arc. Draw the arc from the begin point to 200,100 with the specified parameters.
ctx.ArcTo(New Point(200, 100), New Size(100, 50), 45, True, SweepDirection.Counterclockwise, True, False) ' is smooth join - is stroked - is large arc - rotation angle
End Using
' Freeze the geometry (make it unmodifiable)
' for additional performance benefits.
geometry.Freeze()
' specify the shape (arc) 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 指定的點做為其起點。
StreamGeometry如果它包含 Transform 或任何非筆劃或未填滿的區段,則無法序列化 。