PfadmarkupsyntaxPath Markup Syntax

Pfade finden Sie unter Übersicht über die WPF-Übersicht und die Geometrie Übersicht. in diesem Thema wird jedoch ausführlich die leistungsstarke und komplexe Mini Sprache beschrieben, die Sie verwenden können, um Pfadgeometrien mit kompakteren rechten anzugeben 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).

VoraussetzungenPrerequisites

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

StreamGeometry- und PathFigureCollection-MinisprachenStreamGeometry and PathFigureCollection Mini-Languages

WPFWPF stellt zwei Klassen bereit, die Mini Sprachen zur Beschreibung geometrischer Pfade 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. Es ist immer möglich, einen in einer beliebigen Situation zu verwenden, in der PathGeometry Sie einen verwenden könnten StreamGeometry .It's always possible to use a PathGeometry in any situation where you could use a StreamGeometry; so which one should you use? Verwenden StreamGeometry Sie, wenn Sie den Pfad nach der Erstellung nicht ändern müssen PathGeometry . verwenden Sie, 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 in der Ü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 eigentlich nicht durch ein Komma oder Leerraum voneinander getrennt werden. Dies ist jedoch nur möglich, 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. Beispielsweise 2..3 ist tatsächlich zwei Ziffern: "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 der Attribut Verwendung für einen StreamGeometry besteht aus einem optionalen FillRule Wert und einer oder mehreren Abbildung Beschreibungen.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
<Object - Eigenschaft =" [ fillRule ] figureDescription [ figureDescription ] *" ... />< object property ="[ fillRule] figureDescription[ figureDescription]* " ... />

Die Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Syntax der Attribut Verwendung für einen PathFigureCollection besteht aus einer oder mehreren Abbildung Beschreibungen.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
<Object - Eigenschaft =" figureDescription [ figureDescription ] *" ... />< object property =" figureDescription[ figureDescription]* " ... />
BegriffTerm BESCHREIBUNGDescription
fillRulefillRule System.Windows.Media.FillRule

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

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

Wenn Sie diesen Befehl weglassen, verwendet der Unterpfad das Standardverhalten, d EvenOdd . h..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. Weitere Informationen finden Sie im Abschnitt Move Command .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. Weitere Informationen finden Sie im Abschnitt Zeichnen-Befehle .See the Draw Commands section.
closeCommandcloseCommand Ein optionaler Close-Befehl, der die Figur schließt.An optional close command that closes figure. Weitere Informationen finden Sie im Abschnitt " Schließen ".See the Close Command section.

Move-BefehlMove Command

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

SyntaxSyntax
MStartpunktM startPoint

- oder -- or -

mStartpunktm startPoint
BegriffTerm BESCHREIBUNGDescription
Start PointstartPoint System.Windows.Point

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

Ein Großbuchstabe M gibt an, dass startPoint ein absoluter Wert ist. ein Kleinbuchstabe gibt an, m dass startPoint ein Offset zum vorherigen Punkt ist, oder (0,0), wenn kein Wert 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 sequenziell mehr als einen Befehl desselben Typs eingeben, können Sie den doppelten Befehls Eintrag weglassen. beispielsweise 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. In der folgenden Tabelle werden die Move -und Draw -Befehle beschrieben.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 Zeilen Befehle.l 20 30 and L 20,30 are examples of valid line commands.

SyntaxSyntax
LEndpunktL endPoint

- oder -- or -

lEndpunktl endPoint
BegriffTerm BESCHREIBUNGDescription
DreherendPoint System.Windows.Point

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

Ein Großbuchstabe L gibt an, dass endPoint ein absoluter Wert ist. ein Kleinbuchstabe gibt an, l dass endPoint ein Offset zum vorherigen Punkt ist, oder (0,0), wenn kein Wert 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 StubenH x

- oder -- or -

h Stubenh x
BegriffTerm BESCHREIBUNGDescription
xx System.Double

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

Ein Großbuchstabe H gibt an, dass x ein absoluter Wert ist. ein Kleinbuchstabe gibt an, h dass x ein Offset zum vorherigen Punkt ist, oder (0,0), wenn kein Wert 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 jV y

- oder -- or -

v jv 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ßbuchstabe V gibt an, dass y ein absoluter Wert ist. ein Kleinbuchstabe gibt an, v dass y ein Offset zum vorherigen Punkt ist, oder (0,0), wenn kein Wert 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.

Befehl "kubisch Bezier Kurve"Cubic Bezier Curve Command

Erstellt eine kubische Bezier-Kurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt, indem die beiden angegebenen Kontrollpunkte ( controlPoint 1 und controlPoint 2) verwendet werden.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``controlPoint1 controlPoint 2endPointC controlPoint1controlPoint2endPoint

- oder -- or -

c``controlPoint1 controlPoint 2endPointc 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.

Befehl "Quadratic Bezier Curve"Quadratic Bezier Curve Command

Erstellt mithilfe des angegebenen Steuerungs Punkts () eine quadratische Bezier-Kurve zwischen dem aktuellen Punkt und dem angegebenen Endpunkt 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 Befehl für eine quadratische Bezier-Kurve.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.

Befehl "glatte kubische Bezier-Kurve"Smooth 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. Wenn kein vorheriger Befehl vorhanden ist oder wenn es sich bei dem vorherigen Befehl nicht um einen kubischen Bezier-Kurven Befehl oder einen Smooth kubischen Bezier-Kurven Befehl handelt, gehen Sie davon aus, dass der erste Kontrollpunkt mit dem aktuellen Punkt koincident 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 durch 2 angegeben controlPoint .The second control point, the control point for the end of the curve, is specified by controlPoint2. Beispielsweise S 100,200 200,300 ist ein gültiger Befehl für eine glatte kubische Bezier-Kurve.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-Kurven BefehlSmooth quadratic Bezier curve Command

Erstellt eine quadratische Bezier-Kurve 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, wobei (0,0) die linke obere Ecke ist.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 Werte werden nach Groß-/Kleinschreibung unterschieden.These values are case-sensitive.

UnendlichInfinity
Stellt dar Double.PositiveInfinity .Represents Double.PositiveInfinity.

-Infinity-Infinity
Stellt dar Double.NegativeInfinity .Represents Double.NegativeInfinity.

NaNNaN
Stellt dar Double.NaN .Represents Double.NaN.

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

Weitere InformationenSee also