共用方式為


路徑標記語法

更新:2007 年 11 月

WPF 中圖案和基本繪圖概觀幾何概觀中曾討論路徑,但是本主題詳述的更為強大複雜的迷你語言 (Mini-Language),可以讓您使用可延伸標記語言 (XAML) 更精簡地指定路徑幾何。  

本主題包含下列章節。

必要條件

若要了解本主題,您應該熟悉 Geometry 物件的基本功能。如需詳細資訊,請參閱幾何概觀

StreamGeometry 和 PathFigureCollection 迷你語言

WPF 有兩個類別可提供用來描述幾何路徑的迷你語言:StreamGeometryPathFigureCollection

如您在前面的範例中所見,這兩個迷你語言十分相似。在任何可以使用 StreamGeometry 的情況中,一定都可以使用 PathGeometry,那麼,該用哪一個呢?如果建立路徑後不需要再修改它,就用 StreamGeometry,如果您需要修改路徑,就用 PathGeometry

如需 PathGeometryStreamGeometry 物件之間差異的詳細資訊,請參閱幾何概觀

與空格有關的附註

為求簡潔,以下的「語法」一節中只會顯示單一空格,但在單一空格出現的地方其實也可以用多個空格。

兩個數字之間不一定要用逗號或空格隔開,但這只有在產生的字串不會造成誤解的情況下才行。例如,2..3 其實是 “2.” 和 “.3” 兩個數字。同樣地,2-3 是 “2” 和 “-3”。命令的前後也不需要有空格。

語法

StreamGeometry 的可延伸標記語言 (XAML) 屬性 (Attribute) 使用語法是由選擇性的 FillRule 值和一個或多個圖形描述所組成。

StreamGeometry XAML 屬性使用方式

<objectproperty="[fillRule] figureDescription[figureDescription]*" ... />

PathFigureCollection 的可延伸標記語言 (XAML) 屬性 (Attribute) 使用語法是由一個或多個圖形描述所組成。

PathFigureCollection XAML 屬性使用方式

<objectproperty="figureDescription[figureDescription]*" ... />

詞彙

說明

fillRule

System.Windows.Media.FillRule

指定 StreamGeometry 是使用 EvenOdd 還是 NonzeroFillRule

如果您省略這個命令,子路徑會使用預設行為,即 EvenOdd。如果您指定這個命令,必須先放置它。

figureDescription

圖形是由移動命令、繪製命令和選擇性的關閉命令所組成。

moveCommanddrawCommands [closeCommand]

moveCommand

移動命令,負責指定圖形的起始點。請參閱移動命令一節。

drawCommands

一個或多個繪製命令,負責描述圖形的內容。請參閱繪製命令一節。

closeCommand

選擇性的關閉命令,負責關閉圖形。請參閱關閉命令一節。

移動命令

指定新圖形的起始點。

語法

MstartPoint

-或-

mstartPoint

詞彙

說明

startPoint

System.Windows.Point

新圖形的起始點。

大寫的 M 表示 startPoint 是絕對值,小寫的 m 表示 startPoint 是和前一個點相比的位移 (Offset),如果沒有前一個點就以 (0,0) 為基準。如果您在移動命令之後列出多個點,即使您有指定線條命令,仍會將線繪製到這些點。

繪製命令

繪製命令可以由數個圖案命令組成。圖案命令包括:線條、水平線、垂直線、三次方貝茲曲線、二次方貝茲曲線、平滑三次方貝茲曲線、平滑二次方貝茲曲線和橢圓弧線。

您可以用大寫或小寫字母輸入每個命令:大寫字母表示絕對值,小寫字母表示相對值,在前面的範例中,該區段的控制點是相對於前一個範例的結束點。接連輸入不止一個相同型別的命令時,可以不用重複輸入命令,例如 L 100,200 300,400 相當於 L 100,200 L 300,400。下表描述 movedraw 命令。

線條命令

在目前的點和指定的結束點之間建立一條筆直的線條。l 20 30 和 L 20,30 都是有效 line 命令的範例。

語法

LendPoint

-或-

lendPoint

詞彙

說明

endPoint

System.Windows.Point

線條的結束點。

水平線命令

在目前點和指定的 X 座標之間建立一條水平線。H 90 就是有效水平線命令的範例。

語法

H x

-或-

h x

詞彙

說明

x

System.Double

線條結束點的 X 座標。

垂直線命令

在目前點和指定的 Y 座標之間建立一條垂直線。v 90 就是有效垂直線命令的範例。

語法

V y

-或-

v y

詞彙

說明

y

System.Double

線條結束點的 Y 座標。

三次方貝茲曲線命令

使用兩個指定的控制點 (controlPoint1 和 controlPoint2),在目前點和指定的結束點之間建立一條三次方貝茲曲線。C 100,200 200,400 300,200 就是有效曲線命令的範例。

語法

C controlPoint1 controlPoint2 endPoint

-或-

c controlPoint1 controlPoint2 endPoint

詞彙

說明

controlPoint1

System.Windows.Point

曲線的第一個控制點,決定了曲線的起始正切函數。

controlPoint2

System.Windows.Point

曲線的第二個控制點,決定了曲線的結束正切函數。

endPoint

System.Windows.Point

曲線要繪製到的點。

二次方貝茲曲線命令

使用指定的控制點 (controlPoint),在目前點和指定的結束點之間建立一條二次方貝茲曲線。q 100,200 300,200 就是有效曲二次方貝茲曲線命令的範例。

語法

Q controlPoint endPoint

-或-

q controlPoint endPoint

詞彙

說明

controlPoint

System.Windows.Point

曲線的控制點,決定了曲線的起始和結束正切函數。

endPoint

System.Windows.Point

曲線要繪製到的點。

平滑三次方貝茲曲線命令

在目前點和指定的結束點之間建立一條三次方貝茲曲線。第一個控制點假設是前一個命令的第二個控制點在目前點另一邊的倒映。如果沒有前一個命令,或者前一個命令不是三次方貝茲曲線命令或平滑三次方貝茲曲線命令,即假設第一個控制點和目前點是同一點。第二個控制點,也就是曲線終點使用的控制點,是由 controlPoint2 指定。例如,S 100,200 200,300 就是有效的平滑三次方貝茲曲線命令。

語法

S controlPoint2 endPoint

-或-

s controlPoint2 endPoint

詞彙

說明

controlPoint2

System.Windows.Point

曲線的控制點,決定了曲線的結束正切函數。

endPoint

System.Windows.Point

曲線要繪製到的點。

平滑二次方貝茲曲線命令

在目前點和指定的結束點之間建立一條二次方貝茲曲線。控制點假設是前一個命令的控制點在目前點另一邊的倒映。如果沒有前一個命令,或者前一個命令不是二次方貝茲曲線命令或平滑二次方貝茲曲線命令,即假設控制點和目前點是同一點。

語法

T controlPoint endPoint

-或-

t controlPoint endPoint

詞彙

說明

controlPoint

System.Windows.Point

曲線的控制點,決定了曲線的起始點和正切函數。

endPoint

System.Windows.Point

曲線要繪製到的點。

橢圓弧線命令

在目前點和指定的結束點之間建立一條橢圓弧線。

語法

A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

-或-

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

詞彙

說明

size

System.Windows.Size

弧線的 x 半徑和 y 半徑。

rotationAngle

System.Double

橢圓的旋轉角度 (以度為單位)。

isLargeArcFlag

如果弧線的角度應該大於等於 180 度就設為 1,否則設為 0。

sweepDirectionFlag

如果弧線是向正的角度方向繪製就設為 1,否則設為 0。

endPoint

System.Windows.Point

弧線要延伸到的點。

關閉命令

封閉目前圖形,並建立一條線連接目前點和圖形的起始點。這個命令會在圖形的最後一個區段和第一個區段之間建立線條會合 (角)。

語法

Z

-或-

z

點的語法

描述一個點的 X 座標和 Y 座標。

語法

x,y

-或-

x y

詞彙

說明

x

System.Double

點的 X 座標。

y

System.Double

點的 Y 座標。

特殊值

除了標準的數值外,還可以使用下列特殊值。這些值必須區分大小寫。

您也可以使用科學記號表示法。例如,+1.e17 就是有效值。

請參閱

概念

WPF 中圖案和基本繪圖概觀

幾何概觀

參考

Path

StreamGeometry

PathGeometry

PathFigureCollection

其他資源

幾何 HOW TO 主題

幾何範例

形狀範例