GoXam for WPF v3
Northwoods.GoWPF Assembly

This assembly provides an implementation of the GoXam diagramming functionality for WPF.

Namespaces
NamespaceDescription
Includes the Diagram and Overview controls, the DiagramPanel class containing Layers, the Node and Link classes, and FrameworkElement classes to implement node and link templates such as LinkPanel and Route, the NodeFigure enumeration, and the Spot structure.
Includes classes for arranging nodes based on their relationships, such as TreeLayoutForceDirectedLayout, and LayeredDigraphLayout.

Includes classes for interpreting your application data to recognize link and group-membership relationships.

There are three primary kinds of models: Generic TreeModel, Generic GraphModel, and Generic GraphLinksModel.  All implement the IDiagramModel interface and some other more specialized interfaces.

This namespace also includes the UndoManager class.

Each Diagram has a number of tools that define its behavior when responding to mouse events.  These include ClickSelectingTool, DraggingTool, DragSelectingTool, LinkingTool, and ResizingTool, among others.

ToolManager is the default tool used by a Diagram -- it chooses to run one of the other tools depending on the circumstances.

Remarks

In XAML it is conventional to refer to all of the GoWPF classes using the "go" XML namespace prefix:

    xmlns:go="http://schemas.nwoods.com/GoXam"

Then you can write XAML as follows:

    <DataTemplate x:Key="LinkTemplate">
      <go:LinkPanel go:Part.SelectionElementName="PART_Path" go:Part.SelectionAdorned="True">
        <go:Link.Route>
          <go:Route Curve="Bezier" />
        </go:Link.Route>
        <go:LinkShape x:Name="PART_Path" Stroke="Black" StrokeThickness="1" />
        <Polygon Fill="Black" Points="8 4  0 8  2 4  0 0"
 go:LinkPanel.Alignment="1 0.5" go:LinkPanel.Index="-1" go:LinkPanel.Orientation="Along" />
      </go:LinkPanel>
    </DataTemplate>