Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Xamarin.Forms Синтаксис разметки пути позволяет компактно указывать геометрии пути в XAML. Синтаксис указывается как строковое значение Path.Data для свойства:
<Path Stroke="Black"
Data="M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z" />
Синтаксис разметки пути состоит из необязательного FillRule значения и одного или нескольких описаний рисунков. Этот синтаксис можно выразить следующим образом: <Path Data="[fillRule] рисунокDescription [рисунокDescription] * " ... />
В этом синтаксисе:
- fillRule является необязательным
Xamarin.Forms.Shapes.FillRule, который указывает, следует ли использоватьEvenOddгеометрию илиNonzeroFillRule.F0используется для указанияEvenOddправила заполнения, аF1используется для указанияNonzeroправила заполнения. Дополнительные сведения о правилах заполнения см. в разделе Xamarin.Forms "Фигуры: правила заполнения". - figureDescription представляет фигуру, состоящую из команды перемещения, команд рисования и необязательной команды закрытия. Команда перемещения указывает начальную точку рисунка. Команды рисования описывают содержимое рисунка, а необязательная команда закрытия закрывает рисунок.
В приведенном выше примере синтаксис разметки пути указывает начальную точку с помощью команды перемещения (M), серию прямых строк с помощью команды строки (L) и закрывает путь с помощью команды close (Z).
В синтаксисе разметки пути пробелы не требуются до или после команд. Кроме того, два числа не должны быть разделены запятыми или пробелами, но это может быть достигнуто только в том случае, если строка является однозначной.
Совет
Синтаксис разметки пути совместим с определениями пути к изображениям с масштабируемым векторным вектором (SVG), поэтому его можно использовать для переноса графики из формата SVG.
Хотя синтаксис разметки пути предназначен для использования в XAML, его можно преобразовать Geometry в объект в коде, вызвав ConvertFromInvariantString метод в PathGeometryConverter классе:
Geometry pathData = (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z");
Команда перемещения
Команда перемещения задает начальную точку нового рисунка. Синтаксис этой команды: M startPoint или m startPoint.
В этом синтаксисе startPoint — это Point структура, указывающая начальную точку нового рисунка. Если вы перечисляете несколько точек после команды перемещения, то строка выводится на эти точки.
M 10,10 пример допустимой команды перемещения.
Команды рисования
Команда рисования может состоять из нескольких команд формы. Доступны следующие команды рисования:
- Строка (
Lилиl). - Горизонтальная линия (
Hилиh). - Вертикальная линия (
Vилиv). - Эллиптическая дуга (
Aилиa). - Кубическая кривая Bezier (
Cилиc). - Квадратная кривая Bezier (
Qилиq). - Гладкая кубическая кривая Bezier (
Sилиs). - Гладкая квадратная кривая Bezier (
Tилиt).
Каждая команда рисования указывается с нечувствительной буквой регистра. При последовательном вводе нескольких команд одного типа можно опустить дубликат команды. L 100,200 300,400 Например, эквивалентно L 100,200 L 300,400.
Команда "Строка"
Команда строки создает прямую линию между текущей точкой и указанной конечной точкой. Синтаксис этой команды: L endPoint или l endPoint.
В этом синтаксисе endPoint представляет Point конечную точку строки.
L 20,30 и L 20 30 являются примерами допустимых команд строки.
Сведения о создании прямой линии в качестве PathGeometry объекта см. в разделе "Создание LineSegment".
Команда горизонтальной строки
Команда горизонтальной строки создает горизонтальную линию между текущей точкой и указанной координатой x. Синтаксис этой команды: H x или h x.
В этом синтаксисе x представляет double координату x конечной точки линии.
H 90 — пример допустимой команды рисования горизонтальной линии.
Команда вертикальной строки
Команда вертикальной строки создает вертикальную линию между текущей точкой и указанной координатой y. Синтаксис для этой команды: V y или v y.
В этом синтаксисе y представляет double координату y конечной точки линии.
V 90 — пример допустимой команды рисования вертикальной линии.
Команда эллиптической дуги
Команда эллиптической дуги создает эллиптические дуги между текущей точкой и указанной конечной точкой. Синтаксис этой команды: A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint или a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint.
В этом синтаксисе:
size— это объектSize, представляющий x-и y-радиус дуги.rotationAngledoubleпредставляет поворот многоточия в градусах.isLargeArcFlagдолжно быть установлено значение 1, если угол дуги должен иметь значение 180 градусов или больше, в противном случае задайте значение 0.sweepDirectionFlagДолжно быть установлено значение 1, если дуга рисуется в направлении положительного угла, в противном случае задайте значение 0.endPoint— это тоPoint, к чему рисуется дуга.
A 150,150 0 1,0 150,-150 является примером допустимой эллиптической команды arc.
Сведения о создании эллиптической дуги в качестве PathGeometry объекта см. в разделе "Создание ArcSegment".
Команда кривой «Кубическая безье»
Команда кубической кривой Bezier создает кубическую кривую Bezier между текущей точкой и указанной конечной точкой с помощью двух указанных контрольных точек. Синтаксис этой команды: C controlPoint1 controlPoint2 endPoint2 или c controlPoint1 controlPoint2 endPoint2.
В этом синтаксисе:
- controlPoint1 представляет
Pointпервую контрольную точку кривой, которая определяет начальный тангенс кривой. - controlPoint2 представляет
Pointвторую контрольную точку кривой, которая определяет конечный тангенс кривой. - EndPoint — это точка
Point, в которой рисуется кривая.
C 100,200 200,400 300,200 является примером допустимой команды кривой кубической bezier.
Сведения о создании кубической кривой Bezier в качестве PathGeometry объекта см. в разделе "Создание BezierSegment".
Команда кривых квадратических Bezier
Команда квадратной кривой Bezier создает квадратную кривую Bezier между текущей точкой и указанной конечной точкой с помощью указанной контрольной точки. Синтаксис этой команды: Q controlPoint endPoint или q controlPoint endPoint.
В этом синтаксисе:
- controlPoint — это
Pointточка управления кривой, которая определяет начальные и конечные тангенсы кривой. - EndPoint — это точка
Point, в которой рисуется кривая.
Q 100,200 300,200 — пример допустимой команды рисования кривой Безье второго порядка.
Сведения о создании квадратной кривой Bezier в качестве PathGeometry объекта см. в разделе "Создание квадратикаBezierSegment".
Команда гладкой кубической кривой Bezier
Команда гладкой кубической кривой Bezier создает кубическую кривую Bezier между текущей точкой и указанной конечной точкой с помощью указанной контрольной точки. Синтаксис этой команды: S controlPoint2 endPoint или scontrolPoint2 endPoint2.
В этом синтаксисе:
- controlPoint2 представляет
Pointвторую контрольную точку кривой, которая определяет конечный тангенс кривой. - EndPoint — это точка
Point, в которой рисуется кривая.
Предполагается, что первая контрольная точка отражает вторую контрольную точку предыдущей команды относительно текущей точки. Если предыдущей команды нет, либо предыдущая команда не была кубической кривой Bezier или гладкой командой кривой Bezier, предполагается, что первая контрольная точка совпадает с текущей точкой.
S 100,200 200,300 пример допустимой команды гладкой кубической кривой Bezier.
Команда гладкой квадратной кривой Bezier
Команда гладкой квадратной кривой Bezier создает квадратную кривую Bezier между текущей точкой и указанной конечной точкой с помощью контрольной точки. Синтаксис этой команды: T endPoint или t endPoint.
В этом синтаксисе endPoint представляет Point точку, к которой рисуется кривая.
Предполагается, что контрольная точка является отражением контрольной точки предыдущей команды относительно текущей точки. Если предыдущей команды нет или если предыдущая команда не была квадратной кривой Bezier или гладкой четырехкратной кривой Bezier, то предполагается, что точка управления совпадает с текущей точкой.
T 100,30 является примером допустимой команды гладкой квадратной кривой Bezier.
Закрыть команду
Команда close заканчивает текущую фигуру и создает строку, которая подключает текущую точку к начальной точке рисунка. Поэтому эта команда создает соединение строк между последним сегментом и первым сегментом рисунка.
Синтаксис для команды close: Z или z.
Дополнительные значения
Вместо стандартного числового значения можно также использовать следующие специальные значения с учетом регистра:
Infinitydouble.PositiveInfinityпредставляет .-Infinitydouble.NegativeInfinityпредставляет .NaNdouble.NaNпредставляет .
Кроме того, можно также использовать нечувствительные научные нотации регистра. +1.e17 Поэтому является допустимым значением.