ASP.NET Pack Programmer's Guide
Standard Item Types

Diagram elements in NetDiagram are represented by ShapeNode, TableNode, DiagramLink and ContainerNode instances. Combined and linked together, they can form complex data structures such as process or entity-relationship diagrams, class hierarchies, networks and graphs. Each of their rich features can be customized through numerous methods and properties. NetDiagram also offers intuitive user interface for drawing and editing diagram items interactively.

Shape Nodes

Shape nodes can represent flowchart elements, icons in network diagrams, and so on. They can hold both graphics and text in different fonts, sizes and colors. There are 87 predefined node shapes and apart from them, NetDiagram offers an easy way to define custom shapes. Shape nodes can be rotated, either interactively using the round selection handle drawn above them, or programmatically using the RotationAngle property. ShapeNode appearance can be customized further using several types of custom painting. The first type gives you full control over the painting. With the second one your painting code is performed additionally to the basic painting. The third one performs standard drawing of nodes and custom drawing of their shadows.

SVG Nodes

The SvgNode class represents nodes that can display SVG drawings. SVG graphics are rendered instead of Image, and on top of the geometry rendered by the base ShapeNode class. The SVG drawing of the node is specified through its Content property.

Composite Nodes

Diagram nodes can be composed from components. Components are graphical widgets similar to controls, which can be arranged in hierarchies and added to a Diagram through instances of the CompositeNode class. The component system contains various built-in components, such as Text and Image. Component hierarchies can be defined and loaded through Json templates using loadTemplate and classFromTemplate methods.

Table Nodes

Tables can be used to represent table schemas in database diagrams or classes in class-hierarchies. A table contains cells arranged in a grid, and every cell can display text and/or image. Cells can span several rows and columns as set in the RowSpan and ColumnSpan properties. Cells, columns and rows can be customized in various ways - there are properties available for setting their extents, style, image and text alignment. Tables' dimensions can be programmatically changed; inserting, appending or deleting rows and columns can be done in a very comprehensive, intuitive way whenever you might need it. Tables can also display background images and graphics. The file formats supported are BMP, GIF, JPEG, ICO and WMF (same applies for shape nodes).

Free-form Nodes

A FreeFormNode collects all points from users' mouse or touch input and displays them as node's outline. To let users draw free-form nodes interactively, set Behavior to DrawFreeForms. Use the Points property of FreeFormNode to get or set outline points programmatically. If the Closed property is set, the node is drawn as a closed shape and its interior filled, or otherwise the node is drawn as a poly-line. If the distance between first and last points drawn by user is shorter than AutoCloseDistance, the node gets closed automatically.

Container Nodes

A ContainerNode can contain other diagram nodes. When a container is moved, the contained nodes move too. Containers can be folded to hide the contained nodes, and unfolded back to show them again. Nodes inside a container can be linked to nodes both inside and outside of it. When a container is folded, the links connected to contained nodes point to the container outlines. Containers can be nested one within another to unlimited depth.

Links

Links are used to represent various types of connections and relations in a diagram. NetDiagram offers three basic link types:

A link can be connected to a node at each of the link's ends. It is also possible to have unconnected links - having one or both of their ends not connected to nodes. Some customizable links attributes are: arrowheads, style, color, text, pen width and style, modification behavior, the number of segments.