Contains low-level diagramming primitives.

Classes

  ClassDescription
ArithmeticConverter
Converts a number by multiplying it by a factor and adding an offset.
Arrowhead
Can be placed at each end of a DiagramConnectionElement to render an arrow head.
ArrowheadToPathGeometryConverter
Creates a PathGeometry for an Arrowhead.
AStarPathfinder
Determines a path for an IDiagramConnection, using the A* algorithm to plot a course which consists of horizontal and vertical segments and avoids collisions with other nodes and connections.
AttachedThumb
Represents a Thumb which is associated with a specific FrameworkElement.
AutoSizeCanvas
Represents a Canvas that automatically sizes itself to its child items and their layout.
BasicDiagramConnectionBase<(Of <(TConnectionPoint>)>)
Provides a more basic implementation of diagram connections. This class is good for connections that do not support connection-mounted-connections, and the source/destination connection points are both the same type.
BoundsChangeRequestedEventArgs
Provides information about the DiagramNodeElement.BoundsChangeRequested event of a DiagramNodeElement.
BuilderTypeExtension
Provides a markup shortcut for specifying the Builder associated with a DiagramNodeTool.
CircularLayoutAlgorithm
A type of ILayoutAlgorithm that arranges the nodes in a circle.
ConnectionContentTransformConverter
Creates a TranslateTransform for positioning connection content.
ConnectionDropTarget
Provides information about a potential destination of a connection.
ConnectionPointDirectionTemplate
ConnectionPointPositionConverter
Determines a position from a connection point and an ILayout.
ConnectionPointThumb
A control which can be dragged to create a connection.
ConnectionPointXCoordinateConverter
Determines an X coordinate from a connection point and an ILayout.
ConnectionPointYCoordinateConverter
Determines a Y coordinate from a connection point and an ILayout.
ConnectionRelocatedEventArgs
Provides information about the ConnectionRelocated event of a ConnectionRelocatorThumb.
ConnectionRelocationInfo
Holds information about performing a connection relocation action.
ConnectionRelocatorThumb

Enables and manages relocation of either end of an IDiagramConnection and the DiagramConnectionElement that graphically represents it. That is, this thumb modifies either the ToConnectionPoint or the FromConnectionPoint properties of the connection that this thumb is assigned to.

The position of the end of the connection being relocated is dynamically changed as the mouse is dragged allowing for a rubberbanding effect. This thumb can relocate either the 'to' or 'from' connection point to another connection point mounted on either an IDiagramNode or an IDiagramConnection that the mouse is over when released. If the mouse is released over nothing, then the connection being relocated is put back to its original connection points.

ConnectionSegmentThumb
Enables horizontal or vertical movement of a single MovableDiagramConnectionSegment. Note that a ConnectionSegmentThumb only allows horizontal or vertical segments to be moved.
ConnectionState
A standard implementation of IDiagramConnectionState that can store property values of the properties found in the IDiagramConnection interface. This ConnectionState will store the following property values of the given IDiagramConnection: Data, FromConnectionPoint, ToConnectionPoint, Segments, IsUserModified, and ConnectionPoints. Note that a ConnectionState clones the DiagramConnectionSegment objects in the Segments property, but all other property values are stored by refference.
CorneredPathBuilder
Constructs a PathGeometry from a list of DiagramConnectionSegment objects, applying curved or bevelled corners.
CreateConnectionCursorAction
Represents the cursor action to create a connection using a "connection" toolbox item. This action is typically used only when a diagram contains multiple types of connection -- for example, an entity diagram which contains both inheritance and association relationships.
CursorAction
Represents an action associated with the cursor, such as a "charged cursor" for click-and-drop interaction.
CursorActionTypeConverter
Converts a CursorAction to a CursorActionType in a null-safe manner.
CustomPropertyChangedEventArgs
Holds information about the CustomPropertyChanged event. This information tells the DiagramSurface if it should change the dirty-bit or take a snapshot for undoing purposes.
DataTypeStyleSelector
Selects a diagram node style based on the type of the diagram node data.
DataTypeTemplateSelector
Selects a diagram node template based on the type of the diagram node data.
DefaultCursorAction
Represents the default cursor action (when no toolbox item is selected).
DefaultDiagramConnectionRelocator
Provides standard implementation of relocating an IDiagramConnection.
DefaultDiagramConnectionRemover
Provides the standard implementation for removing connections from a diagram.
DefaultDiagramNodeRemover
Provides the standard implementation of removing nodes from a diagram model.
DefaultLayout
Maps between diagram model bounds and element bounds on a DiagramSurface.
DelegatingDataTemplateSelector
Selects a template, falling back to another DataTemplateSelector if no template is found by this selector.
DelegatingStyleSelector
Selects a style, falling back to another StyleSelector if no style is found by this selector.
DiagramConnectionBase<(Of <(TOutboundPoint, TInboundPoint, TMountedPoint>)>)
Provides base diagram connection implementation.
DiagramConnectionCollection<(Of <(TConnection>)>)
A type of ObservableCollection that holds IDiagramConnection objects and allows for cascading removal of IDiagramConnection objects that have other IDiagramConnection objects attached to them. A DiagramConnectionCollection uses the IDiagramConnectionRemover found in the IDiagramModel passed into the constructor to delete the cascading connections from that model.
DiagramConnectionElement
Represents a connection between two DiagramNodeElement elements.
DiagramConnectionPointBase<(Of <(TConnection>)>)
Provides base implementation for diagram connection points.
DiagramConnectionSegment
A single segment within an IDiagramConnection. DiagramConnectionSegment objects have access to the next or previous DiagramConnectionSegment from this themselves allowing them to be chained together. DiagramConnectionSegment objects only have a single Point representing the end point of the segment. The start point of the segment is the end point of the previous segment. So the first segment in a chain is only a single point. DiagramConnectionSegment objects ensure that there is a bidirectional link between the next and previous segments.
DiagramElement
Represents a visual element in a diagram (a node or connection).
DiagramModelBase<(Of <(TNode, TConnection>)>)
Provides a base implementation of the IDiagramModel interface.
DiagramNodeBase<(Of <(TConnectionPoint>)>)
Provides a base implementation for diagram nodes.
DiagramNodeElement
Represents a node (content element) on a diagram.
DiagramPrintDocument
Contains information used when printing a diagram.
DiagramScrollContentPresenter
Displays the content of a DiagramScrollViewer control.
DiagramScrollViewer
Represents a scrollable area that can contain a diagram.
DiagramState
Represents a cloned state of an IDiagramModel.
DiagramStructureException
The exception that is thrown when a diagram has an invalid structure.
DiagramToolBoxFilterItem
Represents a filter option for a DiagramToolBox.
DiagramToolBoxFilterListConverter
Adds a separator to the diagram tool box filter list.
DoubleToScaleTransformConverter
Converts a double value into a ScaleTransform.
ElbowPathfinder
Determines a path for an IDiagramConnection that consists of horizontal and vertical segments, and avoids collisions with the elements which it connects.
FixedStyleSelector
A StyleSelector which always selects a fixed Style.
FixedTemplateSelector
A DataTemplateSelector which always selects a fixed DataTemplate.
FloatingConnectionPoint
This class is part of the WPF Diagramming infrastructure to support dragging the ends of connections, and is not intended to be used in your own code.
ForceBasedLayoutAlgorithm
A layout algorithm that uses physics equations based on charged particles and springs.
GridLayoutAlgorithm
A layout algorithm that takes advantage of the positions and directions of connection points. Lays out all the nodes in a grid like pattern based on the structure of the diagram.
HierarchicalLayoutAlgorithm
A layout algorithm that positions nodes in a hierarchical tree like structure.
IntersectionSnapLineDrawing
Draws snap lines by placing a dot at the intersections of snap lines.
IntervalLineSnapLineDrawing
Draws snap lines as a set of grid lines with some of the lines having a different color.
LayoutAlgorithmBase
A base implementation of ILayoutAlgorithm.
LineSnapLineDrawing
Draws snap lines as a set of grid lines.
MarginConverter
An IValueConverter that uses the LeftFactor, RightFactor, TopFactor, and BottomFactor properties to create a Thickness object. The factor properties are multiplied by the width and height values of a given Rect to calculate the values of the created Thickness values.
MatchingStyleSelector
Selects a Style based on a list of match criteria.
MatchingTemplateSelector
Selects a data template based on a list of match criteria.
MouseWheelZoom
Provides support for mouse wheel based zooming.
MouseZoomEventArgs
Provides information about the MouseZoomEvent routed event.
MovableDiagramConnectionSegment
A type of DiagramConnectionSegment that can be moved by the user.
MovedEventArgs
Provides information about the Moved event of a MoveThumb.
MoveThumb
Enables dragging of the associated FrameworkElement.
NodeState
A general implementation of the IDiagramNodeState interface.
OffsetPositionCalculator
A type of IPositionCalculator that calculates the position according to factors of the width and height of a bounding rectangle.
PathBuilderBase
Provides a standard base implementation of the IPathBuilder interface.
PointToTranslateTransformConverter
Converts a Point into a TranslateTransform.
PositionCalculatorConverter
Converts instances of other types to and from IPositionCalculator instances.
PositionCalculators
Contains IPositionCalculator implementations for common positions.
QueryDropPositionEventArgs
Provides information about the QueryDropPosition event of a ToolThumb.
QuerySegmentDragEventArgs
Provides information to the DiagramSurface about where the ConnectionSegmentThumb wants to place the MovableDiagramConnectionSegment that it is moving. instances of this class can then hold information about where the DiagramSurface allows the DiagramConnectionSegment to be placed.
RandomLayoutAlgorithm
A type of ILayoutAlgorithm that simply randomizes all the positions of the nodes within an IDiagramModel.
RectToDoubleConverter
Converts a Rect to a number based on the width or height of the Rect.
RectToPointConverter
Calculates the position of a Point on a rectangle, relative to the top left of the rectangle.
RectToSizeConverter
Obtains the size of a Rect, optionally applying scaling and/or fixed offsets.
Resizer
Enables resizing of the associated FrameworkElement.
RotatedEventArgs
Provides information about the Rotated event of a RotateThumb.
RotateThumb
A thumb used to rotate diagram nodes.
RotationToSizeThumbCursorConverter
Converts node rotation into the mouse cursor that should be used by a SizeThumb.
ScrollBarMaximumConverter
Derives a scroll bar maximum from a maximum value, viewport dimension and zoom factor.
ScrollBarViewportSizeConverter
Derives a viewport size from a dimension and zoom factor.
SegmentMovedEventArgs
Provides information about the SegmentMoved event of a ConnectionSegmentThumb.
SegmentsToAngleConverter
Uses diagram connection segments to calculate an angle for an Arrowhead.
ShapeConnectionPointPositionCollectionConverter
Converts instances of other types to and from IPositionCalculator instances.
SizedEventArgs
Provides information about the Sized event of a SizeThumb.
SizeThumb
Enables resizing of the associated FrameworkElement.
SizeToFitConverter
Derives a ScaleTransform sizing a diagram to fit the available size.
SnapLineDrawingConverter
Derives a snap line background drawing from DiagramSurface settings.
SnapToIntervalExtension
Provides a markup shortcut for specifying a snap line interval.
SnapToIntervalSnapSpecifier
Represents an ISnapSpecifier which snaps a coordinate to a regular interval.
StraightLinePathfinder
Determines a path for an IDiagramConnection using a straight line from the start to the end of the connection.
ThicknessToDoubleConverter
Converts a Thickness to a double by returning the Thickness.Top property value.
ToolCursorAction<(Of <(TTool>)>)
Represents the cursor action when a toolbox item is selected.
ToolDroppedEventArgs
Provides information about the ToolDropped event of a ToolThumb control.
ToolThumb
Represents a Thumb that, in addition to being dragged, can be clicked to "charge" the cursor.
TypeEdgeCalculator
Maps a data type and an Edge to an IPositionCalculator.
TypeStyle
Maps a data type to a Style.
TypeStyleSelector
Selects a style based on the type of the object.
TypeStyleSelectorBase
selects a style based on a type.
TypeTemplate
Maps a data type to a DataTemplate.
TypeTemplateSelector
Selects a data template based on the type of the object.
TypeTemplateSelectorBase
Selects a data template based on a type.
UndoManager
A class that manages the undo and redo procedures of a DiagramSurface.
ViewModelBase
Provides common observability support for view model classes.

Interfaces

  InterfaceDescription
IDataTemplateMatcher
Maps a selection criterion to a DataTemplate in a MatchingTemplateSelector.
IDiagramAdapter
Represents an adapter that maps a business object model to a diagram model.
IDiagramConnectable
An object within an IDiagramModel that can have IDiagramConnectionPoint objects attached to it.
IDiagramConnection
Represents a relationship between two diagram model entities that should be made visible in the diagram as a DiagramConnectionElement.
IDiagramConnectionBuilder
Provides connection creation services for use by toolbox items.
IDiagramConnectionPoint
Represents a point on an IDiagramConnectable where a connection can be attached.
IDiagramConnectionRelocator
Provides services for relocating an IDiagramConnection to a different source or/and destination IDiagramConnectionPoint.
IDiagramConnectionRemover
Provides connection removal services from a diagram model.
IDiagramConnectionState
Represents a state of an IDiagramConnection. Implementations of this interface will hold the values of the properties of an instance of an IDiagramConnection implementation.
IDiagramElementFactory
Creates DiagramElement objects for custom diagram content.
IDiagramFormatter
Specifies the layout, formatting and visual style of a diagram.
IDiagramModel
Provides an abstract representation of diagram entities, ready for rendering using templates.
IDiagramNode
Represents a diagram model entity that should be made visible in the diagram as a DiagramNodeElement.
IDiagramNodeBuilder
Provides node creation services for use by toolbox items.
IDiagramNodeRemover
Provides node removal services from a diagram model.
IDiagramNodeState
Represents a state of an IDiagramNode. Implementations of this interface will hold the values of the properties of an instance of an IDiagramNode implementation.
IDiagramPositionable
Represents an item which can be positioned in the diagram and the z-order (as opposed to acquiring its position and z-order from other items).
IDiagramPrintCallback
Gets additional elements for printing on a DiagramPrintDocument.
IDiagramToolboxTool
Represents a control which can be dragged from a toolbox onto a DiagramSurface to create new diagram elements.
IDiagramZOrderable
Represents an item in a diagram that can participate in Z-ordering.
ILayout
Maps between diagram model bounds and element bounds on a DiagramSurface.
ILayoutAlgorithm
represents an algorithm that can be applied to an IDiagramModel which will reposition the nodes within the diagram into a sutable position.
ILayoutAlgorithmInfo
Provides additional logic for layout algorithms that may be specific to certain diagram types.
INotifyCustomPropertyChanged
Implementations of IDiagramConnectable that introduce additional properties can implement this interface allowing such properties to be integrated into the dirty-bit and undo features of a DiagramSurface.
IPathBuilder
Builds a PathGeometry for a sequence of diagram connection segments.
IPathfinder
Determines a path for an IDiagramConnection, specified as a sequence of points.
IPositionCalculator
Calculates a position given a rectangle. This is typically used to calculate the position of an IDiagramConnectionPoint on an IDiagramNode.
ISnapLineDrawing
Draws snap lines on the diagram background.
ISnapSpecifier
Defines how a value should be snapped to a guideline.
IStyleMatcher
Represents a criterion for matching an item to a Style.

Enumerations

  EnumerationDescription
ConnectionEnd
Identifies the two ends of a connection.
ConnectionPointDirection
The direction that an IDiagramConnectionPoint flows relative to the IDiagramConnectable that it is attached to. That is, whether an IDiagramConnectionPoint receives connections or originates them.
ConnectionPointShowFlags
Describes which type of connection points should have their visibility changed.
CornerType
Represents the style of a corner.
CursorActionType
Specifies the type of operation represented by a CursorAction.
DiagramSurfaceDragAction
Determines the behaviour of clicking and then dragging the mouse over a DiagramSurface.
RectToDoubleConverterType
Specifies the calculation that a RectToDoubleConverter should use to convert a Rect to a number.
SnapLineDisplayMode
Controls how a DiagramSurface displays snap lines.
ZIndexLayer
Specifies how a DiagramElement participates in the z-order.