パス マークアップ構文Path Markup Syntax

パスは、後ほど図形と WPF の概要での基本的な描画ジオメトリの概要、ただし、このトピックの詳細、強力で複雑なミニ言語の説明パスの指定に使用することができます使用してよりコンパクト ジオメトリExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)です。Paths are discussed in Shapes and Basic Drawing in WPF Overview and the Geometry Overview, however, this topic describes in detail the powerful and complex mini-language you can use to specify path geometries more compactly using Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML).

必須コンポーネントPrerequisites

このトピックの内容を理解しておく必要がありますの基本的な機能を使い慣れてGeometryオブジェクト。To understand this topic, you should be familiar with the basic features of Geometry objects. 詳細については、次を参照してください。、ジオメトリの概要です。For more information, see the Geometry Overview.

StreamGeometry ミニ言語と PathFigureCollection ミニ言語StreamGeometry and PathFigureCollection Mini-Languages

WPFWPF 幾何学模様のパスを記述するためのミニ言語を提供する 2 つのクラスを提供します。StreamGeometryPathFigureCollectionです。 provides two classes that provide mini-languages for describing geometric paths: StreamGeometry and PathFigureCollection.

前の例からわかるように、2 つのミニ言語はほとんど同じです。As you can see from the preceding examples, the two mini-languages are very similar. 使用することは常に、PathGeometryを使用する場合、状況、StreamGeometry以外の場合はそのうち、どれを使用する必要がありますか。It's always possible to use a PathGeometry in any situation where you could use a StreamGeometry; so which one should you use? 使用して、StreamGeometry作成後にパスを変更する必要はないときを使用して、PathGeometryは、パスを変更する必要がある場合。Use a StreamGeometry when you don't need to modify the path after creating it; use a PathGeometry if you do need to modify the path.

間の相違点の詳細についてはPathGeometryStreamGeometry、オブジェクトを参照してください、ジオメトリの概要です。For more information about the differences between PathGeometry and StreamGeometry objects, see the Geometry Overview.

空白についてのメモA Note about White Space

簡潔にするために、この後のセクションで示す構文には 1 つの空白が使用されていますが、1 つの空白を使用できるところでは、常に複数の空白スペースも許容されます。For brevity, a single space is shown in the syntax sections that follow, but multiple spaces are also acceptable wherever a single space is shown.

2 つの数値は、実際にはコンマまたは空白で区切る必要はありませんが、これは結果の文字列があいまいにならない場合にのみ実行できます。Two numbers don’t actually have to be separated by a comma or whitespace, but this can only be done when the resulting string is unambiguous. たとえば、2..3が実際には 2 つの数値:「2」For instance, 2..3 is actually two numbers: "2." と ".3" ) です。And ".3". 同様に、2-3は、「2」および「-3」です。Similarly, 2-3 is "2" and "-3". どちらの場合も、コマンドの前後に空白は必要ありません。Spaces are not required before or after commands, either.

構文Syntax

Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)属性の使用法の構文、StreamGeometryは省略可能なので構成されてFillRule値と 1 つ以上の説明を図します。The Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) attribute usage syntax for a StreamGeometry is composed of an optional FillRule value and one or more figure descriptions.

StreamGeometry XAML 属性使用構文StreamGeometry XAML Attribute Usage
< object property ="[ fillRule] figureDescription[ figureDescription]* " ... />< object property ="[ fillRule] figureDescription[ figureDescription]* " ... />

Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)属性の使用法の構文、PathFigureCollectionは 1 つまたは複数の図の説明で構成されます。The Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) attribute usage syntax for a PathFigureCollection is composed of one or more figure descriptions.

PathFigureCollection XAML 属性使用構文PathFigureCollection XAML Attribute Usage
< object property =" figureDescription[ figureDescription]* " ... />< object property =" figureDescription[ figureDescription]* " ... />
用語Term 説明Description
fillRulefillRule System.Windows.Media.FillRule

指定するかどうか、StreamGeometryを使用して、EvenOddまたはNonzeroFillRuleです。Specifies whether the StreamGeometry uses the EvenOdd or NonzeroFillRule.

- F0 指定します、EvenOdd塗りつぶしルール。- F0 specifies the EvenOdd fill rule.
- F1 指定します、Nonzero塗りつぶしルール。- F1 specifies the Nonzero fill rule.

このコマンドを省略した場合、サブパスが既定の動作を使用EvenOddです。If you omit this command, the subpath uses the default behavior, which is EvenOdd. このコマンドを指定する場合は、先頭に配置する必要があります。If you specify this command, you must place it first.
figureDescriptionfigureDescription 移動コマンドと描画コマンド (および省略可能な閉じるコマンド) で構成される図形。A figure composed of a move command, draw commands, and an optional close command.

moveCommand drawCommands [ closeCommand ]moveCommand drawCommands [ closeCommand ]
moveCommandmoveCommand 図形の開始位置を指定する移動コマンド。A move command that specifies the start point of the figure. 参照してください、移動コマンドセクションです。See the Move Command section.
drawCommandsdrawCommands 図の内容を記述する 1 つまたは複数の描画コマンド。One or more drawing commands that describe the figure's contents. 参照してください、描画コマンドセクションです。See the Draw Commands section.
closeCommandcloseCommand 図形を閉じるコマンド (省略可能)。An optional close command that closes figure. 参照してください、閉じるコマンドセクションです。See the Close Command section.

移動コマンドMove Command

新しい図形の始点を指定します。Specifies the start point of a new figure.

構文Syntax
M startPointM startPoint

または- or -

m startPointm startPoint
用語Term 説明Description
startPointstartPoint System.Windows.Point

新しい図形の始点。The start point of a new figure.

大文字Mことを示しますstartPoint絶対値; 小文字mことを示しますstartPointを過去の時点のオフセットです (0, 0) が存在しない場合、または。An uppercase M indicates that startPoint is an absolute value; a lowercase m indicates that startPoint is an offset to the previous point, or (0,0) if none exists. 移動コマンドの後ろに複数の点を指定した場合は、直線コマンドを指定した場合でも、これらの点を結ぶ線が描画されます。If you list multiple points after the move command, a line is drawn to those points though you specified the line command.

描画コマンドDraw Commands

描画コマンドは、さまざまな図形コマンドで構成できます。A draw command can consist of several shape commands. 次の図形のコマンドを使用できます。直線、水平線、垂直線、3 次ベジエ曲線、2 次ベジエ曲線、スムーズ 3 次ベジエ曲線、スムーズ 2 次ベジエ曲線、および楕円の円弧。The following shape commands are available: line, horizontal line, vertical line, cubic Bezier curve, quadratic Bezier curve, smooth cubic Bezier curve, smooth quadratic Bezier curve, and elliptical arc.

各コマンドは、大文字または小文字で入力します。大文字は絶対値を、小文字は相対値を表し、そのセグメントの制御点は、前の例の終点を基準とします。You enter each command by using either an uppercase or a lowercase letter: uppercase letters denote absolute values and lowercase letters denote relative values: the control points for that segment are relative to the end point of the preceding example. 順番に同じ型の 1 つ以上のコマンドを入力する、ときに、重複するコマンドの入力を省略できます。たとえば、L 100,200 300,400は等価L 100,200 L 300,400です。When sequentially entering more than one command of the same type, you can omit the duplicate command entry; for example, L 100,200 300,400 is equivalent to L 100,200 L 300,400. 次の表、移動描画コマンド。The following table describes the move and draw commands.

直線コマンドLine Command

現在の点と指定された終点の間に直線を作成します。Creates a straight line between the current point and the specified end point. l 20 30 およびL 20,30の有効な例については、コマンド。l 20 30 and L 20,30 are examples of valid line commands.

構文Syntax
L endPointL endPoint

または- or -

l endPointl endPoint
用語Term 説明Description
endPointendPoint System.Windows.Point

線の終点。The end point of the line.

大文字Lことを示しますendPoint絶対値; 小文字lことを示しますendPointを過去の時点のオフセットです (0, 0) が存在しない場合、または。An uppercase L indicates that endPoint is an absolute value; a lowercase l indicates that endPoint is an offset to the previous point, or (0,0) if none exists.

水平線コマンドHorizontal Line Command

現在の点と指定された x 座標の間に水平線を作成します。Creates a horizontal line between the current point and the specified x-coordinate. H 90 は、有効な水平線コマンドの例です。H 90 is an example of a valid horizontal line command.

構文Syntax
H xH x

または- or -

h xh x
用語Term 説明Description
xx System.Double

直線の終点の x 座標。The x-coordinate of the end point of the line.

大文字Hことを示しますx絶対値; 小文字hことを示しますxを過去の時点のオフセットです (0, 0) が存在しない場合、または。An uppercase H indicates that x is an absolute value; a lowercase h indicates that x is an offset to the previous point, or (0,0) if none exists.

垂直線コマンドVertical Line Command

現在の点と指定された y 座標の間に垂直線を作成します。Creates a vertical line between the current point and the specified y-coordinate. v 90 は、有効な垂直線コマンドの例です。v 90 is an example of a valid vertical line command.

構文Syntax
V yV y

または- or -

v yv y
用語Term 説明Description
yy System.Double

直線の終点の y 座標。The y-coordinate of the end point of the line.

大文字Vことを示しますy絶対値; 小文字vことを示しますyを過去の時点のオフセットです (0, 0) が存在しない場合、または。An uppercase V indicates that y is an absolute value; a lowercase v indicates that y is an offset to the previous point, or (0,0) if none exists.

3 次ベジエ曲線コマンドCubic Bezier Curve Command

2 つの指定されたコントロール ポイントを使用して、現在のポイントと指定したエンドポイントの間で 3 次ベジエ曲線を作成 (controlPoint1 とcontrolPoint2)。Creates a cubic Bezier curve between the current point and the specified end point by using the two specified control points (controlPoint1 and controlPoint2). C 100,200 200,400 300,200 は、有効な曲線コマンドの例です。C 100,200 200,400 300,200 is an example of a valid curve command.

構文Syntax
C controlPoint1controlPoint2endPointC controlPoint1controlPoint2endPoint

または- or -

c controlPoint1controlPoint2endPointc controlPoint1controlPoint2endPoint
用語Term 説明Description
controlPoint1controlPoint1 System.Windows.Point

曲線の 1 つ目の制御点。曲線の前半の接線を決定します。The first control point of the curve, which determines the starting tangent of the curve.
controlPoint2controlPoint2 System.Windows.Point

曲線の 2 つ目の制御点。曲線の後半の接線を決定します。The second control point of the curve, which determines the ending tangent of the curve.
endPoint System.Windows.Point

曲線が描画される点。The point to which the curve is drawn.

2 次ベジエ曲線コマンドQuadratic Bezier Curve Command

指定されたコントロール ポイントを使用して、現在のポイントと指定したエンドポイントの間で 2 次ベジエ曲線を作成 (controlPoint)。Creates a quadratic Bezier curve between the current point and the specified end point by using the specified control point (controlPoint). q 100,200 300,200 は、有効な 2 次ベジエ曲線コマンドの例です。q 100,200 300,200 is an example of a valid quadratic Bezier curve command.

構文Syntax
Q controlPoint endPointQ controlPoint endPoint

または- or -

q controlPoint endPointq controlPoint endPoint
用語Term 説明Description
controlPoint System.Windows.Point

曲線の制御点。曲線の前半と後半の接線を決定します。The control point of the curve, which determines the starting and ending tangents of the curve.
endPoint System.Windows.Point

曲線が描画される点。The point to which the curve is drawn.

スムーズ 3 次ベジエ曲線コマンドSmooth cubic Bezier curve Command

現在の点と指定された終点の間に 3 次ベジエ曲線を作成します。Creates a cubic Bezier curve between the current point and the specified end point. 1 つ目の制御点は、現在の点に対する前のコマンドの 2 つ目の制御点のリフレクションと見なされます。The first control point is assumed to be the reflection of the second control point of the previous command relative to the current point. 前のコマンドが存在しない場合、または前のコマンドが 3 次ベジエ曲線コマンドまたはスムーズ 3 次ベジエ曲線コマンドでなかった場合、1 つ目の制御点は、現在の点と一致するとみなされます。If there is no previous command or if the previous command was not a cubic Bezier curve command or a smooth cubic Bezier curve command, assume the first control point is coincident with the current point. 曲線の最後のコントロール ポイントは、2 つ目のコントロール ポイントで指定されたcontrolPoint2 です。The second control point, the control point for the end of the curve, is specified by controlPoint2. たとえば、S 100,200 200,300有効な smooth 3 次ベジエ曲線コマンドします。For example, S 100,200 200,300 is a valid smooth cubic Bezier curve command.

構文Syntax
S controlPoint2endPointS controlPoint2endPoint

または- or -

s controlPoint2endPoints controlPoint2endPoint
用語Term 説明Description
controlPoint2controlPoint2 System.Windows.Point

曲線の制御点。曲線の後半の接線を決定します。The control point of the curve, which determines the ending tangent of the curve.
endPoint System.Windows.Point

曲線が描画される点。The point to which the curve is drawn.

スムーズ 2 次ベジエ曲線コマンドSmooth quadratic Bezier curve Command

現在の点と指定された終点の間に 2 次ベジエ曲線を作成します。Creates a quadratic Bezier curve between the current point and the specified end point. 制御点は、現在の点に対する前のコマンドの制御点のリフレクションと見なされます。The control point is assumed to be the reflection of the control point of the previous command relative to the current point. 前のコマンドが存在しない場合、または前のコマンドが 2 次ベジエ曲線コマンドまたはスムーズ 2 次ベジエ曲線コマンドでなかった場合、制御点は、現在の点と一致するとみなされます。If there is no previous command or if the previous command was not a quadratic Bezier curve command or a smooth quadratic Bezier curve command, the control point is coincident with the current point.

構文Syntax
T controlPoint endPointT controlPoint endPoint

または- or -

t controlPoint endPointt controlPoint endPoint
用語Term 説明Description
controlPoint System.Windows.Point

曲線の制御点。曲線の前半の接線を決定します。The control point of the curve, which determines the starting and tangent of the curve.
endPoint System.Windows.Point

曲線が描画される点。The point to which the curve is drawn.

楕円の円弧コマンドElliptical Arc Command

現在の点と指定された終点の間に楕円の円弧を作成します。Creates an elliptical arc between the current point and the specified end point.

構文Syntax
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPointA size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

または- or -

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPointa size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
用語Term 説明Description
size System.Windows.Size

円弧の x 半径と y 半径。The x- and y-radius of the arc.
rotationAngle System.Double

楕円の回転 (度単位)。The rotation of the ellipse, in degrees.
isLargeArcFlag 円弧の角度を 180 度以上にする場合は 1 に設定します。それ以外の場合は 0 に設定します。Set to 1 if the angle of the arc should be 180 degrees or greater; otherwise, set to 0.
sweepDirectionFlag 円弧が正の角度の方向に描画される場合は 1 に設定します。それ以外の場合は 0 に設定します。Set to 1 if the arc is drawn in a positive-angle direction; otherwise, set to 0.
endPoint System.Windows.Point

円弧が描画される点。The point to which the arc is drawn.

閉じるコマンドThe Close Command

現在の図形を終了し、現在の点と図の開始点を結ぶ線を作成します。Ends the current figure and creates a line that connects the current point to the starting point of the figure. このコマンドは、図形の最初のセグメントと最後のセグメントの間に線結合 (コーナー) を作成します。This command creates a line-join (corner) between the last segment and the first segment of the figure.

構文Syntax
Z

または- or -

z

点の構文Point Syntax

ポイントの x 座標と y 座標をについて説明します。 ここで (0, 0) は、左上隅です。Describes the x- and y-coordinates of a point where (0,0) is the top left corner.

構文Syntax
x , yx , y

または- or -

x yx y
用語Term 説明Description
x System.Double

点の x 座標。The x-coordinate of the point.
y System.Double

点の y 座標。The y-coordinate of the point.

特殊な値Special Values

標準的な数値ではなく、次の特殊な値を使用することもできます。Instead of a standard numerical value, you can also use the following special values. これらの値では、大文字と小文字が区別されます。These values are case-sensitive.

InfinityInfinity
表すDouble.PositiveInfinityです。Represents Double.PositiveInfinity.

-Infinity-Infinity
表すDouble.NegativeInfinityです。Represents Double.NegativeInfinity.

NaNNaN
表すDouble.NaNです。Represents Double.NaN.

指数表記を使用することもできます。You may also use scientific notation. たとえば、+1.e17有効な値です。For example, +1.e17 is a valid value.

関連項目See Also

Path
StreamGeometry
PathGeometry
PathFigureCollection
WPF での図形と基本描画の概要Shapes and Basic Drawing in WPF Overview
ジオメトリの概要Geometry Overview
方法トピックHow-to Topics