コンポーネントは悪くありません。 彼はうまく描画します。全体を描画するCanvasを構成できます。 美しく描きますが、これもプラスです。

作業を開始するには、NeoDataType.Graphicsアセンブリに含まれるコンポーネントを追加する必要があります。 その後、フォーム上に描画要素のコンポーネント(キャンバス)をスローします。 コンポーネントは、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 .
次に、キャンバスでの要素の描画が開始されます。
卒業証書でこのコンポーネントを使用して、プリント基板を描画しました。 すべてが素晴らしかった。
このコンポーネントの最も重要な利点は、スクリプトを使用して要素を描画できるスクリプト化されたプリプロセッサを備えていることです。 スクリプト形式は、このコントロールのページで表示できます。 スクリプトの使用を開始するには、ScriptedItem型の要素を使用する必要があります。
ご質問は、お問い合わせください。