Стиль объекта

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

#region Создание стиля для линейного объекта
mvPenObject pen_line = new mvPenObject();
pen_line.Color = 0x333333;
pen_line.ctype = 2;
pen_line.width = 2;
line_style = workLayer.CreateLineStyle(pen_line);
#endregion
#region Создание стиля для полигонального объекта
mvPenObject pen_polygon = new mvPenObject();
pen_polygon.Color = 0x00FF00;
pen_polygon.ctype = 1;
pen_polygon.width = 2;
mvBrushObject brush = new mvBrushObject();
brush.bgcolor = 0xffff00;
brush.fgcolor = 0x00ffff;
brush.style = 0;
brush.hatch = 2;
polygon_style = workLayer.CreatePolygonStyle(pen_polygon, brush);
#endregion 

В данном примере мы создаем объекты «карандаш» и «кисть» (mvPenObject и mvBrushObject), каждый из этих объектов отвечает за свою часть стиля. Для создания стиля линейного объекта нам необходим только mvPenObject. Его в качестве аргумента и нужно передать методу CreateLineStyle слоя, который в свою очередь, так же как и с точкой, возвращает идентификатор стиля в слое.

При создании стиля для полигонального объекта кроме mvPenObject нужен еще mvBrushObject, которые является кистью. Эти два объекта передаются методу CreatePolygonStyle, который также возвращается идентификатор стиля в слое.

Таким образом, мы рассмотрели создание индивидуального стиля для каждого объекта. Однако, если в вашем слое могут быть объекты с одинаковым оформлением, то достаточно всего лишь присвоить ранее полученный идентификатор стиля созданному объекту.

В компоненте так же предусмотрен доступ к установке стиля объекта через слой. Иногда это бывает намного удобнее, нежели изменять стиль у каждого объекта. Для таких манипуляций существуют два метода: SetObjectStyle(int style, int ID) и SetObjectsStyle(int style, mvIntArray ids).

Разница между двумя этими методами в том, что первый позволяет установить стиль только для одного объекта, у которого значение атрибута идентификатора равно ID. Второй же метод может изменить стиль для множества объектов, правда перед этим вам необходимо будет сформировать объект класса mvIntArray.