Line

65

Фигура Line представляет отрезок прямой, соединяющий между собой две точки. Начальная и конечная точки задаются свойствами X1 и Y1 (для первой точки) и Х2 и Y2 (для второй точки). Например, ниже показан код линии, простирающейся от (0,0) до (200,150):

<Line Stroke="LightBlue" StrokeThickness="4" X1="0" Y1="0" X2="200" Y2="150"></Line>

Свойство Fill не имеет никакого эффекта для линии. Понадобится устанавливать свойство Stroke.

Линия

Координаты, используемые для линии, отсчитываются относительно верхнего левого угла контейнера, в котором она содержится. Например, если поместить предыдущую линию в StackPanel, то координаты (0,0) будут указывать на то место, где будет находиться элемент в контейнере StackPanel. Это может быть верхний левый угол окна, но, возможно, и нет. Если StackPanel использует ненулевое значение Margin, или же линии предшествуют другие элементы, то начало точки (0,0) окажется на некотором расстоянии от вершины окна.

Однако для линии вполне допустимо использовать отрицательные координаты. Фактически, можно указывать координаты, которые унесут линию за пределы выделенного пространства, и она будет нарисована поверх любой другой части окна. Это невозможно для фигур Rectangle и Ellipse, которые рассматривались до сих пор. Тем не менее, у такой модели есть недостаток, а именно: линия не может использовать модель "плавающего содержимого". Это значит, что для линии невозможно установить такие свойства, как Margin, HorizontalAlignment и VerticalAlignment — они не будут иметь никакого эффекта. То же ограничение касается фигур Polyline и Polygon.

Для линии можно использовать свойства Height, Width и Stretch, хотя это не особо принято. Базовая технология предусматривает применение Height и Width для определения пространства, выделенного под линию, с последующим использованием свойства Stretch для изменения размера линии, чтобы она уместилась в эту область.

В случае помещения Line в контейнер Canvas присоединенные свойства позиции (такие как Тор и Left) по-прежнему применимы. Они определяют стартовую позицию линии. Другими словами, две координаты линии задают величину смещения. Рассмотрим следующую линию:

<Line Stroke="Blue" Х1="0" Y1="0" Х2="10" Y2="100"
Canvas.Left="5" Canvas.Top="100"></Line>

Линия простирается от (0,0) до (10,100), используя систему координат, которая трактует точку (5,100) в Canvas как (0,0). Это делает ее эквивалентной линии, в которой свойства Тор и Left не используются:

<Line Stroke="Blue" X1="5" Y1="100" Х2="15" Y2="200"></Line>

Применение свойства позиционирования при помещении Line в Canvas остается на ваше усмотрение. Часто за счет выбора подходящей начальной точки удается упростить рисование линии. Кроме того, это может облегчить перемещение частей рисунка.

Например, рисовать несколько линий и других фигур в определенной позиции Canvas неплохо относительно некоторой близлежащей точки (указывая одинаковые координаты Тор и Left). Таким образом, при необходимости можно сместить в новую точку сразу часть рисунка.

Пройди тесты
Лучший чат для C# программистов