Синтаксис разметки путиPath Markup Syntax

Путями, рассматриваются в фигур и базовых средств рисования в WPF Обзор и Общие сведения о геометрии, однако в этом разделе подробно описываются сложной и мощной мини-язык, который можно использовать для указания пути более Язык XAMLExtensible 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 Язык XAMLExtensible 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 и PathFigureCollectionStreamGeometry and PathFigureCollection Mini-Languages

WPFWPF предоставляет два класса, обеспечивающих мини языки для описания геометрических путей: StreamGeometry и PathFigureCollection.provides two classes that provide mini-languages for describing geometric paths: StreamGeometry and PathFigureCollection.

Как видно из предыдущих примеров мини-языки очень похожи.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.

Дополнительные сведения о различиях между PathGeometry и StreamGeometry объектов, см. в разделе Общие сведения о геометрии.For more information about the differences between PathGeometry and StreamGeometry objects, see the Geometry Overview.

Примечание о пробелахA Note about White Space

В следующих разделах для краткости в примерах синтаксиса показан один пробел, но допускается использовать по нескольку пробелов везде, где указан один пробел.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.

Два числа не обязательно должны быть разделены запятыми или пробелы, но это может быть выполнено, только если результирующая строка получается неоднозначной.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. Например 2..3 фактически представляет два числа: "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

Язык XAMLExtensible Application Markup Language (XAML) Атрибута синтаксис для использования StreamGeometry состоит из необязательного FillRule значение и один или несколько следующих описаний.The Язык XAMLExtensible Application Markup Language (XAML) attribute usage syntax for a StreamGeometry is composed of an optional FillRule value and one or more figure descriptions.

Использование атрибута XAML на StreamGeometryStreamGeometry XAML Attribute Usage
< Объект свойство ="[ fillRule] figureDescription[ figureDescription] * " ... />< object property ="[ fillRule] figureDescription[ figureDescription]* " ... />

Язык XAMLExtensible Application Markup Language (XAML) Атрибута синтаксис для использования PathFigureCollection состоит из одного или нескольких описаний.The Язык XAMLExtensible Application Markup Language (XAML) attribute usage syntax for a PathFigureCollection is composed of one or more figure descriptions.

Использование атрибута XAML на PathFigureCollectionPathFigureCollection XAML Attribute Usage
< Объект свойство =" figureDescription[ figureDescription] * " ... />< object property =" figureDescription[ figureDescription]* " ... />
ТерминTerm ОписаниеDescription
fillRulefillRule System.Windows.Media.FillRule

Указывает, является ли StreamGeometry использует EvenOdd или Nonzero FillRule.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 Одна или несколько команд рисования, описывающих содержимое фигуры.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. Имеются следующие команды формы: линия, горизонтальная линия, вертикальная линия, кривая Безье третьего порядка, кривая Безье второго порядка, гладкая кривая Безье третьего порядка, гладкая кривая Безье второго порядка и эллиптическая дуга.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. При последовательном вводе нескольких команд одного типа, можно опустить Повторяющийся заголовок команды; например 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.

Команда рисования кривой Безье третьего порядкаCubic Bezier Curve Command

Создает кривую Безье третьего порядка между текущей точкой и заданной конечной точкой с помощью двух заданных контрольных точек (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

Первая контрольная точка кривой, которая определяет начальную касательную к кривой.The first control point of the curve, which determines the starting tangent of the curve.
controlPoint2controlPoint2 System.Windows.Point

Вторая контрольная точка кривой, которая определяет конечную касательную к кривой.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.

Команда рисования кривой Безье второго порядкаQuadratic Bezier Curve Command

Создает кривую Безье второго порядка между текущей точкой и заданной конечной точкой с использованием заданной контрольной точки (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 — пример допустимой команды рисования кривой Безье второго порядка.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.

Команда рисования гладкой кривой Безье третьего порядкаSmooth cubic Bezier curve Command

Создает кривую Безье третьего порядка между текущей и заданной конечной точками.Creates a cubic Bezier curve between the current point and the specified end point. Предполагается, что первая контрольная точка является отражением второй контрольной точки предыдущей команды относительно текущей точки.The first control point is assumed to be the reflection of the second control point of the previous command relative to the current point. Если нет предыдущей команды или если предыдущая команда не является командой рисования кривой Безье третьего порядка или командой рисования гладкой кривой Безье третьего порядка, считается, что первая контрольная точка совпадает с текущей точкой.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. Вторая контрольная точка, контрольная точка конца кривой, задается controlPoint2.The second control point, the control point for the end of the curve, is specified by controlPoint2. Например S 100,200 200,300 — это допустимая команда гладкой кривой Безье третьего порядка.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.

Команда рисования гладкой кривой Безье второго порядкаSmooth quadratic Bezier curve Command

Создает кривую Безье второго порядка между текущей и заданной конечной точками.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. Если нет предыдущей команды или если предыдущая команда не является командой рисования кривой Безье второго порядка или командой рисования гладкой кривой Безье второго порядка, считается, что контрольная точка совпадает с текущей точкой.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 Значение 1, если угол дуги должен быть 180 градусов или больше, в противном случае — значение 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.

БесконечностьInfinity
Представляет Double.PositiveInfinity.Represents Double.PositiveInfinity.

-бесконечность-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