Show / Hide Table of Contents

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

Путями, рассматриваются в фигур и базовых средств рисования в WPF Обзор и Общие сведения о геометрии, однако в этом разделе подробно описываются сложной и мощной мини-язык, который можно использовать для указания пути более XAML.

Предварительные требования

Для понимания этого раздела необходимо ознакомиться с основным функциям Geometry объектов. Дополнительные сведения см. в разделе Общие сведения о геометрии.

Мини-языки StreamGeometry и PathFigureCollection

WPF предоставляет два класса, обеспечивающих мини языки для описания геометрических путей: StreamGeometry и PathFigureCollection.

  • Использовании StreamGeometry мини-язык, при задании свойства типа Geometry, такие как Clip свойство UIElement или Data свойство Path элемент. В следующем примере синтаксис атрибутов для создания StreamGeometry.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • Использовании PathFigureCollection мини-язык, при задании Figures свойство PathGeometry. В следующем примере синтаксис атрибутов для создания PathFigureCollection для PathGeometry.

    <Path Stroke="Black" Fill="Gray">
      <Path.Data>
        <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" />
      </Path.Data>
    </Path>
    

Как видно из предыдущих примеров мини-языки очень похожи. Это всегда можно использовать PathGeometry в любой ситуации, когда можно использовать StreamGeometry; поэтому какой из них следует использовать? Используйте StreamGeometry при не требуется изменять путь после его создания; используйте PathGeometry Если вам нужно изменить путь.

Дополнительные сведения о различиях между PathGeometry и StreamGeometry объектов, см. в разделе Общие сведения о геометрии.

Примечание о пробелах

В следующих разделах для краткости в примерах синтаксиса показан один пробел, но допускается использовать по нескольку пробелов везде, где указан один пробел.

Два числа не обязательно должны быть разделены запятыми или пробелы, но это может быть выполнено, только если результирующая строка получается неоднозначной. Например 2..3 фактически представляет два числа: "2." и 3. Аналогичным образом 2-3 «2» и «-3". Пробелы до и после команд ставить необязательно.

Синтаксис

XAML Атрибута синтаксис для использования StreamGeometry состоит из необязательного FillRule значение и один или несколько следующих описаний.

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

XAML Атрибута синтаксис для использования PathFigureCollection состоит из одного или нескольких описаний.

Использование атрибута XAML на PathFigureCollection
< Объект свойство =" figureDescription[ figureDescription] * " ... />
Термин Описание
fillRule System.Windows.Media.FillRule

Указывает, является ли StreamGeometry использует EvenOdd или NonzeroFillRule.

- F0 Указывает EvenOdd правило заполнения.
- F1 Указывает Nonzero правило заполнения.

Если опустить эту команду, во вложенном пути используется поведение по умолчанию, которое является EvenOdd. Если эта команда используется, ее необходимо размещать вначале.
figureDescription Фигура, состоящая из команды перемещения, команд рисования и необязательной команды закрытия.

moveCommand drawCommands [ closeCommand ]
moveCommand Команда перемещения, которая указывает начальную точку фигуры. См. в разделе команда перемещения раздел.
drawCommands Одна или несколько команд рисования, описывающих содержимое фигуры. См. в разделе команда рисования раздел.
closeCommand Необязательная команда, которая закрывает фигуру. См. в разделе команда закрытия раздел.

Команда перемещения

Задает начальную точку новой фигуры.

Синтаксис
M startPoint

-или-

m startPoint
Термин Описание
startPoint System.Windows.Point

Начальная точка новой фигуры.

Верхнерегистровая M указывает, что startPoint значение является абсолютным; строчных букв m указывает, что startPoint — это смещение к предыдущей точке, или (0,0), если он не существует. Если после команды перемещения указано несколько точек, будет нарисована линия к этим точкам, как в случае указания команды рисования линии.

Команды рисования

Команда рисования может состоять из нескольких команд формы. Имеются следующие команды формы: линия, горизонтальная линия, вертикальная линия, кривая Безье третьего порядка, кривая Безье второго порядка, гладкая кривая Безье третьего порядка, гладкая кривая Безье второго порядка и эллиптическая дуга.

Все команды можно вводить как прописными, так и строчными буквами. Прописными буквами определяются абсолютные значения, а строчными —относительные. Контрольная точка для этого сегмента указывается относительно конечной точки в предыдущем примере. При последовательном вводе нескольких команд одного типа, можно опустить Повторяющийся заголовок команды; например L 100,200 300,400 эквивалентен L 100,200 L 300,400. В следующей таблице описаны переместить и рисования команды.

Команда рисования линии

Создает прямую линию между текущей и заданной конечной точками. l 20 30 и L 20,30 — примеры допустимых строки команды.

Синтаксис
L Конечная точка

-или-

l Конечная точка
Термин Описание
Конечная точка System.Windows.Point

Конечная точка строки.

Верхнерегистровая L указывает, что endPoint значение является абсолютным; строчных букв l указывает, что endPoint — это смещение к предыдущей точке, или (0,0), если он не существует.

Команда рисования горизонтальной линии

Создает горизонтальную линию между текущей точкой и заданной координатой X. H 90 приведен пример допустимой команды горизонтальной линии.

Синтаксис
H x

-или-

h x
Термин Описание
x System.Double

Координата X конечной точки линии.

Верхнерегистровая H указывает, что x значение является абсолютным; строчных букв h указывает, что x — это смещение к предыдущей точке, или (0,0), если он не существует.

Команда рисования вертикальной линии

Создает вертикальную линию между текущей точкой и заданной координатой Y. v 90 приведен пример допустимой команды вертикальной линии.

Синтаксис
V y

-или-

v y
Термин Описание
y System.Double

Координата Y конечной точки линии.

Верхнерегистровая V указывает, что y значение является абсолютным; строчных букв v указывает, что y — это смещение к предыдущей точке, или (0,0), если он не существует.

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

Создает кривую Безье третьего порядка между текущей точкой и заданной конечной точкой с помощью двух заданных контрольных точек (controlPoint1 и controlPoint2). C 100,200 200,400 300,200 приведен пример команды допустимым кривой.

Синтаксис
C controlPoint1controlPoint2endPoint

-или-

c controlPoint1controlPoint2endPoint
Термин Описание
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 controlPoint2endPoint

-или-

s controlPoint2endPoint
Термин Описание
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 Значение 1, если угол дуги должен быть 180 градусов или больше, в противном случае — значение 0.
sweepDirectionFlag Значение 1, если дуга рисуется в направлении положительного угла, в противном случае — значение 0.
endPoint System.Windows.Point

Точка, в которую рисуется дуга.

Команда закрытия

Заканчивает текущую фигуру и создает линию, соединяющую текущую точку с начальной точкой фигуры. Эта команда создает соединительную линию (угол) между последним и первым сегментами фигуры.

Синтаксис
Z

-или-

z

Синтаксис точки

Описывает x и y координаты точки где (0,0) находится в левом верхнем углу.

Синтаксис
x , y

-или-

x y
Термин Описание
x System.Double

Координата X точки.
y System.Double

Координата Y точки.

Специальные значения

Вместо стандартных числовых значений можно использовать следующие специальные значения. Эти значения чувствительны к регистру.

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

-бесконечность
Представляет Double.NegativeInfinity.

NaN
Представляет Double.NaN.

Можно также использовать экспоненциальное представление чисел. Например +1.e17 является допустимым значением.

См. также

  • Path
  • StreamGeometry
  • PathGeometry
  • PathFigureCollection
  • Обзор фигур и базовых средств рисования в приложении WPF
  • Общие сведения о классе Geometry
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX