Итак сразу к делу. Компонент можно достать здесь и там же есть описание его.
Компонент неплох. Хорошо рисует, можно понастраивать Canvas на котором все это дело рисуется. Красиво рисует, что тоже плюс.






Для того что бы вам с ним начать работать нужно добавить компонент входящий в сборку NeoDataType.Graphics. После чего кидаете на форму компонент отрисовки элементов (Canvas). Компонент умеет рисовать объекты наследующиеся от NeoDataType.Graphic.GraphicItem. У этого типа есть ссылка на объект типа NeoDataType.Graphic.Painter, именно в этом классе вы и реализуете отрисовку объекта.
У NeoDataType.Graphic.Painter есть ссылка на NeoDataType.Graphic.GraphicItem.

Т.е. после того как вы создали свой объект и свой пейнтер получится следующее:


Я думаю понятно что получилось. Реализация вот:

public class TestPainter : NeoDataType.Graphic.Painter
{
 protected override void  Paint(System.Drawing.Graphics g)
 {
  TestPObject item = (TestPObject) Item;
  g.DrawLine(item.Pen, item.Bounds.Left, item.Bounds.Top, item.Bounds.Right, item.Bounds.Bottom);
 }
}

public class TestPObject : NeoDataType.Graphic.GraphicItem
{
 public  Pen Pen{ get; set;}
 public  TestPObject()
 {
  Painter = new TestPainter();
 }
}


* This source code was highlighted with Source Code Highlighter.


Для того что бы компонент начал отрисовывать ваши элементы следует добавить экземпляры типа NeoDataType.Graphic.GraphicItem к коллекции эелементов содержащихся в компоненте. Для этого нам у Canvas надо обратится к GraphicDocument в котором содержится коллекция наших объектов. Код примерно следующй:

cnvMain.Document = new GraphicDocument();
cnvMain.Document.AddItem(new TestPObject(){Pen = Pens.Black});


* This source code was highlighted with Source Code Highlighter.


Далее начнется отрисовка вашего элемента на Canvas.

Этот компонент я использовал в своем дипломе для отрисовки печатных плат. Все было здорово.

Самое главное достоинство этого компонента в том что у него есть скриптовый препроцессор, который позволяет рисовать элементы скриптами. Формат скрипта можно посмотреть на странице этого контрола. Что бы начать использование скрипта следут использовать элемент типа ScriptedItem.

Будут вопросы обращайтесь.