Главная » C#, Компоненты » Линии взаимного расположения компонентов

0

Типы линий привязки взаимного расположения компонентов (см. разд. 2.2) определяются перечислением SnapLineType:

Q SnapLineType.тор— горизонтальная линия по верхней границе компонентов;

?     SnapLineType.Bottom— горизонтальная линия по иижией границе компонентов;

?     SnapLineType.Left — вертикальная линия по левой границе компонентов;

0 snapLineType.Right — вертикальная линия по правой границе компонентов;

?     SnapLineType.Horizontal — горизонтальная линия (ие по границе);

?     snapLineType.vertical — вертикальная линия (ие по границе);

О snapLineType.Baseiine — базовая линия, зависящая от основной функциональности компонента. Например, для компонента Label это линия по середине текста.

Свойство snapLines класса дизайнера ControiDesigner возвращает список (iList) объектов типа snapLine, определяющих каждую из отображаемых линий.

Создать список линий можно следующим образом:

public override IList SnapLines

t

get

{

List<SnapLine> snapLines = new List<SnapLine>(); snapLines.Add(new SnapLine(SnapLineType.Bottom, 10)); return snapLines;

}

}

Конструктор класса snapLine имеет два параметра. Первый определяет тип линии, второй— смещение от соответствующей границы. Еще один конструктор этого класса имеет три параметра и позволяет определить приоритеты отображения линий с помощью перечисления SnapLinePriority:

?     Always — показывать всегда;

0 High — наивысший приоритет отображения;

?     Medium—средний приоритет отображения;

?     Low — низший приоритет отображения.

Редактор Visual Studio отображает по одной линии в вертикальном и горизонтальном направлениях, выбирая только линии с максимальным приоритетом.

При необходимости добавить линию в уже существующий список нужно привести список SnapLines к типу ArrayList и добавить в него нужные элементы:

ArrayList snapLines = base.SnapLines as ArrayList; snapLines.Add(new SnapLine(SnapLineType.Bottom, 10));

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

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии