Xamarin.Forms Фигуры: путь

Download Sample Скачайте пример

Класс Path является производным от Shape класса и может использоваться для рисования кривых и сложных фигур. Эти кривые и фигуры часто описываются с помощью Geometry объектов. Сведения о свойствах, наследующихся от класса, см. в разделеXamarin.Forms"Фигуры".ShapePath

Path определяет следующие свойства:

  • DataGeometryтип, который указывает нарисованную фигуру.
  • RenderTransformтип Transform, представляющий преобразование, которое применяется к геометрии пути перед рисуемой.

Эти свойства поддерживаются объектами BindableProperty, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.

Дополнительные сведения о преобразованиях см. в разделе Xamarin.Forms "Преобразования пути".

Создание пути

Чтобы нарисовать путь, создайте Path объект и задайте его Data свойство. Существует два метода настройки Data свойства:

  • Строковое значение Data можно задать в XAML с помощью синтаксиса разметки пути. При таком подходе Path.Data значение использует формат сериализации для графики. Как правило, вы не редактируете это строковое значение вручную после его создания. Вместо этого вы используете средства проектирования для управления данными и экспортируете его в виде строкового фрагмента, который используется свойством Data .
  • Свойство можно задать DataGeometry для объекта. Это может быть конкретный Geometry объект или GeometryGroup контейнер, который может объединять несколько геометрических объектов в один объект.

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

В следующем примере XAML показано, как нарисовать треугольник с помощью синтаксиса разметки пути:

<Path Data="M 10,100 L 100,100 100,50Z"
      Stroke="Black"
      Aspect="Uniform"
      HorizontalOptions="Start" />

Строка Data начинается с команды перемещения, указанной с Mпомощью которой устанавливается абсолютная начальная точка для пути. L — это команда строки, которая создает прямую строку из начальной точки в указанную конечную точку. Z — это команда закрытия, которая создает строку, которая подключает текущую точку к начальной точке. Результатом является треугольник:

Path triangle

Дополнительные сведения о синтаксисе разметки пути см. в разделе Xamarin.Forms "Синтаксис разметки пути".

Создание пути с объектами Geometry

Кривые и фигуры можно описать с помощью Geometry объектов, которые используются для задания Path свойства объекта Data . Есть множество объектов Geometry на выбор. Классы EllipseGeometry, LineGeometry и RectangleGeometry описывают относительно простые фигуры. Чтобы создавать более сложные формы или кривые, используйте PathGeometry.

PathGeometry объекты состоят из одного или нескольких PathFigure объектов. Каждый PathFigure объект представляет другую фигуру. Каждый PathFigure объект состоит из одного или нескольких PathSegment объектов, каждая из которых представляет часть соединения фигуры. Типы сегментов включают следующие LineSegmentBezierSegmentклассы и ArcSegment классы.

В следующем примере XAML показано, как нарисовать треугольник с помощью PathGeometry объекта:

<Path Stroke="Black"
      Aspect="Uniform"
      HorizontalOptions="Start">
    <Path.Data>
        <PathGeometry>
            <PathGeometry.Figures>
                <PathFigureCollection>
                    <PathFigure IsClosed="True"
                                StartPoint="10,100">
                        <PathFigure.Segments>
                            <PathSegmentCollection>
                                <LineSegment Point="100,100" />
                                <LineSegment Point="100,50" />
                            </PathSegmentCollection>
                        </PathFigure.Segments>
                    </PathFigure>
                </PathFigureCollection>
            </PathGeometry.Figures>
        </PathGeometry>
    </Path.Data>
</Path>

В этом примере начальная точка треугольника — 10 1000. Сегмент линии рисуется от (10 1000 до 100 100) и от (100 100 до 100 50). Затем цифры, первые и последние сегменты подключены, так как PathFigure.IsClosed для свойства задано trueзначение . Результатом является треугольник:

Path triangle

Дополнительные сведения о геометриях см. в разделе Xamarin.Forms "Геометрии".