Xamarin.Forms Фигуры: Многоугольник
Класс Polygon
является производным от Shape
класса и может использоваться для рисования многоугольников, которые являются соединенными рядами линий, которые образуют закрытые фигуры. Сведения о свойствах, наследующихся от класса, см. в разделеXamarin.Forms "Фигуры".Shape
Polygon
Polygon
определяет следующие свойства:
Points
PointCollection
типа, который представляет собой коллекциюPoint
структур, описывающих вершинные точки многоугольника.FillRule
FillRule
тип , который указывает, как определяется внутренняя заливка фигуры. Значение по умолчанию этого свойства равноFillRule.EvenOdd
.
Эти свойства поддерживаются объектами BindableProperty
, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.
Тип PointsCollection
является типом ObservableCollection
Point
объектов. Структура Point
определяет X
и Y
свойства типа double
, которые представляют пару координат x-и y в 2D-пространстве. Таким образом, Points
свойство должно быть задано в списке пар координат x и Y, описывающих точки вершин многоугольника, разделенные одной запятой и (или) одним или несколькими пробелами. Например, допустимы "40 10 70 80" и "40 10, 70 80".
Дополнительные сведения о перечислении см. в FillRule
разделе Xamarin.Forms "Фигуры: правила заливки".
Создание многоугольника
Чтобы нарисовать многоугольник, создайте Polygon
объект и задайте его Points
свойство вершинам фигуры. Автоматически рисуется линия, соединяющая первую и последнюю точки. Чтобы покрасить внутри многоугольника, задайте для свойства Fill
производный Brush
объект. Чтобы дать многоугольник контуру, задайте для свойства Stroke
производный Brush
объект. Свойство StrokeThickness
задает толщину контура многоугольника. Дополнительные сведения об объектах см. в Brush
разделе Xamarin.Forms "Кисти".
В следующем примере XAML показано, как нарисовать заполненный многоугольник:
<Polygon Points="40,10 70,80 10,50"
Fill="AliceBlue"
Stroke="Green"
StrokeThickness="5" />
В этом примере рисуется заполненный многоугольник, представляющий треугольник:
В следующем примере XAML показано, как нарисовать пунктирный многоугольник:
<Polygon Points="40,10 70,80 10,50"
Fill="AliceBlue"
Stroke="Green"
StrokeThickness="5"
StrokeDashArray="1,1"
StrokeDashOffset="6" />
В этом примере контур многоугольника дефисируется:
Дополнительные сведения о рисовании тире многоугольника см. в разделе "Рисование дефисированных фигур".
В следующем примере XAML показан многоугольник, использующий правило заполнения по умолчанию:
<Polygon Points="0 48, 0 144, 96 150, 100 0, 192 0, 192 96, 50 96, 48 192, 150 200 144 48"
Fill="Blue"
Stroke="Red"
StrokeThickness="3" />
В этом примере поведение заливки каждого многоугольника определяется с помощью EvenOdd
правила заполнения.
В следующем примере XAML показан многоугольник, использующий Nonzero
правило заполнения:
<Polygon Points="0 48, 0 144, 96 150, 100 0, 192 0, 192 96, 50 96, 48 192, 150 200 144 48"
Fill="Black"
FillRule="Nonzero"
Stroke="Yellow"
StrokeThickness="3" />
В этом примере поведение заливки каждого многоугольника определяется с помощью Nonzero
правила заполнения.