Essential Diagram for WPF has the ability to present powerful and feature-rich diagrams. It provides an intuitive user-interaction model for creating and editing diagrams with XAML and data binding support. Its programmatic interface also places at your disposal many useful commands and methods that enable the performance of functionalities such as printing, data binding, serializing, and automatic layout algorithms. Virtualized rendering optimizes the rendering of large diagrams. It is fully localizable for any culture.
Nodes and Connectors
Nodes and Connectors
Nodes can be added to the diagram surface programtically by defining them in XAML, or interactively during run time by dragging and dropping them from
a built-in symbol palette.
The shape of nodes can be set to any one of the predefined shapes provided, or you can specify a custom shape by assigning any user-defined WPF Path elements.
You can also design custom Path elements using Microsoft Expression Blend. Nodes can be grouped together and common operations can be performed on them.
You can define one or more ports on nodes for connecting them to other nodes.
Connection ports can be placed anywhere within a node or at its edges.
You can choose one of the predefined symbols like arrows, circles, or diamonds, or you can define
a custom connecton port. The look and feel of these connection ports are fully customizable.
Connectors are used to represent a link between two nodes. They are usually a line drawn from one connection port in a node to another.
Line connectors are used to represent a logical flow or connection between the nodes of a diagram.
Setting up such a connection will keep the connectors docked to the nodes when the nodes are moved around. Essential Diagram provides orthogonal, Bezier, and straight connectors.
You can also draw polylines using intermediate points. Essential Diagram also provides line bridging support that renders a bridge to clearly distinguish orthogonal lines at their points of intersection.
You can even define connection ports on line connectors, allowing you to connect two line connectors instead of just nodes.
Advanced line routing options to treat some objects as obstacles and avoid interference with them are also available.
Essential Diagram provides options to fully customize nodes, connectors, and connection ports. Besides the nodes, customizable options are provided to change the look and feel of different portions of a diagram, enabling you to create professional-looking diagrams that reflect style patterns commonly used in business.
Essential Diagram provides various user interactions like displaying ToolTips and context menus for nodes and connectors.
Context menus provide easy access to commonly used commands for nodes and connectors.
Users can zoom in and out of the diagram page and can also pan across the diagram surface using the mouse.
The Overview control is used to show a preview of the larger diagram content with options to zoom and pan.
Essential Diagram supports contextual views of selected nodes with the following views rendered in floating windows:
Successors view: Shows all child nodes of the selected node.Predecessors view: Displays all parent nodes of the selected node.Neighborhood view: Displays the immediate child and parent nodes of the selected node.
Essential Diagram provides an advanced snapping option that allows you to align a diagram object with other objects using drawing guidelines that are shown while dragging a node.
This support enables you to easily keep the objects properly aligned in the diagram page.
You can define layers in a diagram. Any number of nodes and line connectors can be added to a layer, and the visibility of a layer's contents can be turned on/off. This is ideal to visualize different views of the same diagram.
The surface on which all the nodes are rendered is fully customizable. The drawing area of the diagram control can be rendered with horizontal and vertical gridlines.
You can enable horizontal and vertical rulers to indicate the coordinates of the mouse pointer position with respect to the view. On zooming and panning, these rulers are adjusted to point to the exact coordinates.
Diagram content can be exported to the following file formats:
Essential Diagram supports saving a diagram page for future use. This can be done by saving the page in XAML format.
The content of the page can also be saved to a stream from which it can be loaded again at a later point in time.
Print and Print Preview
Essential Diagram supports printing with the following user options to customize the output:
Print preview to view the page before printing. Color modes to select printing such as color, and black and white.Stretch to adjust the fit of the image on the page.
Essential Diagram provides several commands that enable users to easily perform commonly used operations like node alignment, sizing, nudging, spacing, undo, redo, z-order specification, and clipboard operations.
Essential Diagram provides out-of-the-box data binding support to many popular data sources including ObservableColletion, CollectionViewSource, and
all the collections implementing ICollectionView and IEnumerable that can bind to XML data sources. Data binding is usually used in conjunction with automatic layouts to lay out the nodes in a specific pattern.
The Diagram control provides a layout manager that can automatically arrange the nodes in several built-in layout patterns.
Directed Tree Layout: Arranges nodes in a tree-like structure.Hierarchical Tree Layout: Arranges nodes in a tree-like structure. However, unlike the directed tree layout, the nodes in a hierarchical layout may have multiple parents.Radial Tree Layout: A specialized type of tree layout manager that arranges nodes in a circular layout.Table Layout: Arranges nodes in a tabular structure.
The symbol palette is a large collection of predefined nodes. It allows nodes and line connectors to be easily dragged-and-dropped into a diagram. Custom symbols can also be added to the symbol palette. It also supports grouping and filtering symbols.
Symbol Designer is a stand-alone application that lets you create and modify custom symbols. The custom shapes designed can then be used in your applications and also in the Diagram Builder application.
Easily create custom Symbols using the tools you are already familiar with. Symbols designed using Microsoft Expression Blend can be imported into a diagram symbol palette. An add-in to export symbols from within Microsoft Expression Blend is also available.
Several advanced editing capabilities allows you to build a very accurate diagram suitable to your needs:
Label Editors for nodes and connectors.Z-order commands to arrange nodes in front or behind other nodes.Nudge commands.Group and Ungroup commands.Spacing, Sizing, and Alignment commands.Undo and Redo commands.Drawing Tools for creating different shapes and lines.Optional drag in X or Y directions only.