PfadmarkupsyntaxPath Markup Syntax

Pfade finden Sie im Formen und Grundlegendes Zeichnen in WPF (Übersicht) und Übersicht über die Geometrie, jedoch in diesem Thema wird ausführlich die leistungsstarke und komplexe Minisprache Sie den Pfad angeben können Pfadgeometrien kompakter unter Verwendung 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).

VorraussetzungenPrerequisites

Um dieses Thema zu verstehen, sollten Sie mit den grundlegenden Funktionen von vertraut sein Geometry Objekte.To understand this topic, you should be familiar with the basic features of Geometry objects. Weitere Informationen finden Sie unter den Übersicht über die Geometrie.For more information, see the Geometry Overview.

StreamGeometry- und PathFigureCollection-MinisprachenStreamGeometry and PathFigureCollection Mini-Languages

WPFWPF stellt zwei Klassen, die Minisprachen für die Beschreibung von geometrischen Pfaden bereitstellen: StreamGeometry und PathFigureCollection.provides two classes that provide mini-languages for describing geometric paths: StreamGeometry and PathFigureCollection.

Wie Sie aus den vorangehenden Beispielen sehen können, sind die beiden Minisprachen sehr ähnlich.As you can see from the preceding examples, the two mini-languages are very similar. Ist es immer möglich, verwenden eine PathGeometry in einer Situation, in denen Sie können, eine StreamGeometry; dies der Fall ist welche sollten Sie verwenden?It's always possible to use a PathGeometry in any situation where you could use a StreamGeometry; so which one should you use? Verwenden Sie eine StreamGeometry verwenden, wenn Sie nicht so ändern Sie den Pfad nach dem Erstellen, müssen eine PathGeometry , wenn Sie den Pfad ändern müssen.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.

Weitere Informationen zu den Unterschieden zwischen PathGeometry und StreamGeometry Objekten finden Sie die Übersicht über die Geometrie.For more information about the differences between PathGeometry and StreamGeometry objects, see the Geometry Overview.

Anmerkung zu LeerzeichenA Note about White Space

Aus Platzgründen wird ein einzelnes Leerzeichen in den folgenden Syntaxabschnitten dargestellt, aber mehrere Leerzeichen sind überall dort zulässig, wo ein einzelnes Leerzeichen angezeigt wird.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.

Zwei Zahlen müssen nicht unbedingt durch ein Komma oder ein Leerzeichen getrennt werden, aber dies kann nur durchgeführt werden, wenn die resultierende Zeichenfolge eindeutig ist.Two numbers don’t actually have to be separated by a comma or white space, but this can only be done when the resulting string is unambiguous. Z. B. 2..3 besteht aus zwei Zahlen: "2."For instance, 2..3 is actually two numbers: "2." und „.3“.And ".3". Auf ähnliche Weise 2-3 ist "2" und "-3".Similarly, 2-3 is "2" and "-3". Auch vor oder nach Befehlen sind keine Leerzeichen erforderlich.Spaces are not required before or after commands, either.

SyntaxSyntax

Die Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Syntax für das Attribut ein StreamGeometry besteht aus einem optionalen FillRule Wert sowie Beschreibungen zu ermitteln.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-AttributverwendungStreamGeometry XAML Attribute Usage
< Objekt Eigenschaft ="[ fillRule] figureDescription[ figureDescription] * " ... />< object property ="[ fillRule] figureDescription[ figureDescription]* " ... />

Die Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Syntax für das Attribut ein PathFigureCollection besteht aus mindestens einer figurbeschreibung.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-AttributverwendungPathFigureCollection XAML Attribute Usage
< Objekt Eigenschaft =" figureDescription[ figureDescription] * " ... />< object property =" figureDescription[ figureDescription]* " ... />
BegriffTerm BeschreibungDescription
fillRulefillRule System.Windows.Media.FillRule

Gibt an, ob die StreamGeometry verwendet die EvenOdd oder Nonzero FillRule.Specifies whether the StreamGeometry uses the EvenOdd or NonzeroFillRule.

- F0 Gibt an, die EvenOdd -Füllregel fest.- F0 specifies the EvenOdd fill rule.
- F1 Gibt an, die Nonzero -Füllregel fest.- F1 specifies the Nonzero fill rule.

Wenn Sie diesen Befehl weglassen, verwendet der untergeordnete Pfad das Standardverhalten, handelt es sich EvenOdd.If you omit this command, the subpath uses the default behavior, which is EvenOdd. Wenn Sie diesen Befehl angeben, müssen Sie ihn zunächst platzieren.If you specify this command, you must place it first.
figureDescriptionfigureDescription Eine aus einem Move-Befehl, Draw-Befehl und einem optionalen Close-Befehl bestehende Figur.A figure composed of a move command, draw commands, and an optional close command.

moveCommand drawCommands [ closeCommand ]moveCommand drawCommands [ closeCommand ]
moveCommandmoveCommand Ein Move-Befehl, der den Startpunkt der Figur angibt.A move command that specifies the start point of the figure. Finden Sie unter den Move-Befehl Abschnitt.See the Move Command section.
drawCommandsdrawCommands Mindestens ein Draw-Befehl, der den Inhalt der Figur beschreibt.One or more drawing commands that describe the figure's contents. Finden Sie unter den Draw-Befehle Abschnitt.See the Draw Commands section.
closeCommandcloseCommand Ein optionaler Close-Befehl, der die Figur schließt.An optional close command that closes figure. Finden Sie unter den Close-Befehl Abschnitt.See the Close Command section.

Move-BefehlMove Command

Gibt den Ausgangspunkt einer neuen Figur an.Specifies the start point of a new figure.

SyntaxSyntax
M startPointM startPoint

- oder -- or -

m startPointm startPoint
BegriffTerm BeschreibungDescription
startPointstartPoint System.Windows.Point

Der Ausgangspunkt einer neuen Figur.The start point of a new figure.

Ein großgeschriebenes M gibt an, dass startPoint ist ein absoluter Wert ist ein klein geschriebenes m gibt an, dass startPoint um einen Offset zum vorherigen Punkt handelt oder um (0,0), falls keiner vorhanden ist.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. Wenn Sie nach dem Move-Befehl mehrere Punkte auflisten, wird eine Linie zu diesen Punkten gezeichnet, obwohl Sie den Line-Befehl angegeben haben.If you list multiple points after the move command, a line is drawn to those points though you specified the line command.

Draw-BefehleDraw Commands

Ein Draw-Befehl kann aus mehreren Shape-Befehlen bestehen.A draw command can consist of several shape commands. Die folgenden Shape-Befehle sind verfügbar: Linie, horizontale Linie, vertikale Linie, kubische Bézierkurve, quadratische Bézierkurve, glatte kubische Bézierkurve, glatte quadratische Bézierkurve und elliptischer Bogen.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.

Sie geben jeden Befehl unter Verwendung eines Großbuchstabens oder eines Kleinbuchstabens ein: Großbuchstaben geben absolute Werte an, und Kleinbuchstaben geben relative Werte an: Die Kontrollpunkte für dieses Segment sind abhängig vom Endpunkt des vorherigen Beispiels.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. Wenn Sie nacheinander mehrere Befehle desselben Typs eingeben möchten, können Sie den doppelten Befehlseintrag auslassen; z. B. L 100,200 300,400 entspricht 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. Die folgende Tabelle beschreibt die verschieben und zeichnen Befehle.The following table describes the move and draw commands.

Line-BefehlLine Command

Erstellt eine gerade Linie zwischen dem aktuellen Punkt und dem angegebenen Endpunkt.Creates a straight line between the current point and the specified end point. l 20 30 und L 20,30 sind Beispiele für gültige Zeile Befehle.l 20 30 and L 20,30 are examples of valid line commands.

SyntaxSyntax
L endPointL endPoint

- oder -- or -

l endPointl endPoint
BegriffTerm BeschreibungDescription
endPointendPoint System.Windows.Point

Der Endpunkt der Linie.The end point of the line.

Ein großgeschriebenes L gibt an, dass endPoint ist ein absoluter Wert ist ein klein geschriebenes l gibt an, dass endPoint um einen Offset zum vorherigen Punkt handelt oder um (0,0), falls keiner vorhanden ist.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.

Befehl für eine horizontale LinieHorizontal Line Command

Erstellt eine horizontale Linie zwischen dem aktuellen Punkt und der angegebenen x-Koordinate.Creates a horizontal line between the current point and the specified x-coordinate. H 90 ist ein Beispiel für einen gültigen Befehl für eine horizontale Linie.H 90 is an example of a valid horizontal line command.

SyntaxSyntax
H xH x

- oder -- or -

h xh x
BegriffTerm BeschreibungDescription
wx System.Double

Die x-Koordinate des Endpunkts der Linie.The x-coordinate of the end point of the line.

Ein großgeschriebenes H gibt an, dass x ist ein absoluter Wert ist ein klein geschriebenes h gibt an, dass x um einen Offset zum vorherigen Punkt handelt oder um (0,0), falls keiner vorhanden ist.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.

Befehl für vertikale LinieVertical Line Command

Erstellt eine vertikale Linie zwischen dem aktuellen Punkt und der angegebenen y-Koordinate.Creates a vertical line between the current point and the specified y-coordinate. v 90 ist ein Beispiel für einen gültigen Befehl für eine vertikale Linie.v 90 is an example of a valid vertical line command.

SyntaxSyntax
V yV y

- oder -- or -

v yv y
BegriffTerm BeschreibungDescription
yy System.Double

Die y-Koordinate des Endpunkts der Linie.The y-coordinate of the end point of the line.

Ein großgeschriebenes V gibt an, dass y ist ein absoluter Wert ist ein klein geschriebenes v gibt an, dass y um einen Offset zum vorherigen Punkt handelt oder um (0,0), falls keiner vorhanden ist.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.

Kubische Bezier-Kurve-BefehlCubic Bezier Curve Command

Erstellt eine kubische Bezier-Kurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt mit den zwei angegebenen Kontrollpunkten (controlPoint1 und 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 ist ein Beispiel für einen gültigen Kurvenbefehl.C 100,200 200,400 300,200 is an example of a valid curve command.

SyntaxSyntax
C controlPoint1controlPoint2endPointC controlPoint1controlPoint2endPoint

- oder -- or -

c controlPoint1controlPoint2endPointc controlPoint1controlPoint2endPoint
BegriffTerm BeschreibungDescription
controlPoint1controlPoint1 System.Windows.Point

Der erste Kontrollpunkt der Kurve, der die beginnende Tangente der Kurve bestimmt.The first control point of the curve, which determines the starting tangent of the curve.
controlPoint2controlPoint2 System.Windows.Point

Der zweite Kontrollpunkt der Kurve, der die endende Tangente der Kurve bestimmt.The second control point of the curve, which determines the ending tangent of the curve.
endPoint System.Windows.Point

Der Punkt, bis zu dem die Kurve gezeichnet wird.The point to which the curve is drawn.

Quadratischen Bezier-Kurve-BefehlQuadratic Bezier Curve Command

Erstellt eine quadratische Bezier-Kurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt mithilfe des angegebenen Kontrollpunkts (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 ist ein Beispiel für einen gültigen quadratischen Bezier-Kurve-Befehl.q 100,200 300,200 is an example of a valid quadratic Bezier curve command.

SyntaxSyntax
Q controlPoint endPointQ controlPoint endPoint

- oder -- or -

q controlPoint endPointq controlPoint endPoint
BegriffTerm BeschreibungDescription
controlPoint System.Windows.Point

Der Kontrollpunkt der Kurve, der die beginnende und endende Tangente der Kurve bestimmt.The control point of the curve, which determines the starting and ending tangents of the curve.
endPoint System.Windows.Point

Der Punkt, bis zu dem die Kurve gezeichnet wird.The point to which the curve is drawn.

Smooth kubische Bezier-Kurve BefehlSmooth cubic Bezier curve Command

Erstellt eine kubische Bézierkurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt.Creates a cubic Bezier curve between the current point and the specified end point. Der erste Kontrollpunkt soll die Reflektion des zweiten Kontrollpunkts des vorherigen Befehls relativ zum aktuellen Punkt sein.The first control point is assumed to be the reflection of the second control point of the previous command relative to the current point. Ausgegangen Sie wenn es keinen vorherigen Befehl, oder wenn der vorherige Befehl keinen kubische Bezier-Kurve-Befehl oder ein smooth kubische Bezier-Kurve-Befehl wurde, wird davon, dass der erste Kontrollpunkt, mit dem aktuellen Punkt ist.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. Der zweite Kontrollpunkt, der Kontrollpunkt für das Ende der Kurve, wird angegeben, indem controlPoint2.The second control point, the control point for the end of the curve, is specified by controlPoint2. Z. B. S 100,200 200,300 ist ein gültiger smooth kubische Bezier-kurvenbefehl.For example, S 100,200 200,300 is a valid smooth cubic Bezier curve command.

SyntaxSyntax
S controlPoint2endPointS controlPoint2endPoint

- oder -- or -

s controlPoint2endPoints controlPoint2endPoint
BegriffTerm BeschreibungDescription
controlPoint2controlPoint2 System.Windows.Point

Der Kontrollpunkt der Kurve, der die endende Tangente der Kurve bestimmt.The control point of the curve, which determines the ending tangent of the curve.
endPoint System.Windows.Point

Der Punkt, bis zu dem die Kurve gezeichnet wird.The point to which the curve is drawn.

Smooth quadratischen Bezier-Kurve BefehlSmooth quadratic Bezier curve Command

Erstellt eine quadratische Bezierkurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt.Creates a quadratic Bezier curve between the current point and the specified end point. Der Kontrollpunkt soll die Reflektion des Kontrollpunkts des vorherigen Befehls relativ zum aktuellen Punkt sein.The control point is assumed to be the reflection of the control point of the previous command relative to the current point. Wenn kein vorheriger Befehl vorhanden ist oder der vorherige Befehl kein Befehl für eine quadratische Bézierkurve und kein Befehl für eine glatte quadratische Bézierkurve war, fällt der Kontrollpunkt mit dem aktuellen Punkt zusammen.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.

SyntaxSyntax
T controlPoint endPointT controlPoint endPoint

- oder -- or -

t controlPoint endPointt controlPoint endPoint
BegriffTerm BeschreibungDescription
controlPoint System.Windows.Point

Der Kontrollpunkt der Kurve, der die beginnende Tangente der Kurve bestimmt.The control point of the curve, which determines the starting and tangent of the curve.
endPoint System.Windows.Point

Der Punkt, bis zu dem die Kurve gezeichnet wird.The point to which the curve is drawn.

Befehl für elliptischen BogenElliptical Arc Command

Erstellt einen elliptischen Bogen zwischen dem aktuellen Punkt und dem angegebenen Endpunkt.Creates an elliptical arc between the current point and the specified end point.

SyntaxSyntax
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPointA size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

- oder -- or -

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPointa size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
BegriffTerm BeschreibungDescription
size System.Windows.Size

Der X- und Y-Radius des Bogens.The x- and y-radius of the arc.
rotationAngle System.Double

Die Drehung der Ellipse in Grad.The rotation of the ellipse, in degrees.
isLargeArcFlag Ist auf 1 festgelegt, wenn der Winkel des Bogens 180 Grad oder größer sein soll; andernfalls auf 0 festgelegt.Set to 1 if the angle of the arc should be 180 degrees or greater; otherwise, set to 0.
sweepDirectionFlag Ist auf 1 festgelegt, wenn der Bogen in einer Richtung mit positivem Winkel gezeichnet wird; andernfalls auf 0 festgelegt.Set to 1 if the arc is drawn in a positive-angle direction; otherwise, set to 0.
endPoint System.Windows.Point

Der Punkt, bis zu dem der Bogen gezeichnet wird.The point to which the arc is drawn.

Close-BefehlThe Close Command

Beendet die aktuelle Figur und erstellt eine Linie, die den aktuellen Punkt mit dem Startpunkt der Figur verbindet.Ends the current figure and creates a line that connects the current point to the starting point of the figure. Dieser Befehl erstellt einen LineJoin (Ecke) zwischen dem letzten Segment und dem ersten Segment der Figur.This command creates a line-join (corner) between the last segment and the first segment of the figure.

SyntaxSyntax
Z

- oder -- or -

z

Punkt-SyntaxPoint Syntax

Beschreibt die x- und y-Koordinaten eines Punkts, in denen (0,0) wird von die linke obere Ecke.Describes the x- and y-coordinates of a point where (0,0) is the top left corner.

SyntaxSyntax
x , yx , y

- oder -- or -

x yx y
BegriffTerm BeschreibungDescription
x System.Double

Die x-Koordinate des Punkts.The x-coordinate of the point.
y System.Double

Die y-Koordinate des Punkts.The y-coordinate of the point.

Spezielle WerteSpecial Values

Anstelle eines numerischen Standardwerts können Sie auch die folgenden speziellen Werte verwenden.Instead of a standard numerical value, you can also use the following special values. Die Groß-/Kleinschreibung muss bei diesen Werten berücksichtigt werden.These values are case-sensitive.

UnendlichInfinity
Stellt Double.PositiveInfinity.Represents Double.PositiveInfinity.

minus unendlich-Infinity
Stellt Double.NegativeInfinity.Represents Double.NegativeInfinity.

NaNNaN
Stellt Double.NaN.Represents Double.NaN.

Sie können auch die wissenschaftliche Schreibweise verwenden.You may also use scientific notation. Z. B. +1.e17 ist ein gültiger Wert.For example, +1.e17 is a valid value.

Siehe auchSee also