Here's a summary of the new features in 1.2 since 1.1.3:
� Added
several samples:
� Arrowheads,
demonstrating all of the new predefined Arrowheads
� Flowgrammer,
showing how to build flowcharts with a particular graphical syntax
� MindMap,
building trees of text
� Piping,
tanks connected by pipes controlled by valves and monitored by instruments
� DraggableLink,
demonstrating partly connected Links and custom Adornments
� FriendWheel,
demonstrating CircularLayout
� CLayout,
demonstrating features of CircularLayout
� OrgChartBus,
a variation on OrgChartEditor using TreeAlignment.Bus and
comments/assistants
� LocalView,
showing only nodes and links connected to a particular node of a much larger
graph
� LocalExpand,
automatically expanding Groups that are near the mouse
� Improved
the StateChart sample to save/load link route points and to allow user dragging
of the link label
� Improved
the EntityRelationship sample to demonstrate keeping a ListBox and the Diagram
selection in sync, and to automatically center the Diagram.SelectedNode
Parts
� Added
Arrowhead enum
� Added
LinkPanel.ToArrow, ToArrowScale, FromArrow, FromArrowScale attached
dependency properties to be set on a Path child of a LinkPanel to
act as an arrowhead
� Added
Route.ToShortLength and FromShortLength properties, to control
how far from the actual end point the path geometry should terminate, so that
the stroke does not interfere with an arrowhead, especially when the stroke is
thick; negative values extend the line
� Added
LinkEndSegmentDirection enum, to control whether Route.GetLinkDirection
is affected by the node's Node.RotationAngle
� Added
Route.FromEndSegmentDirection and ToEndSegmentDirection properties
� Added
Route.Smoothness property, to control smoothness of orthogonal Bezier
link shapes
� Added
Route.FindClosestSegment method, to find the straight segment that is
closest to a given point
� Added
LinkCurve.JumpGap enum value, similar to LinkCurve.JumpOver, for
gaps in link shapes when crossing over orthogonal link segments
� Extended
LinkPanel to support multiple Paths with go:LinkPanel.IsLinkShape="True"
(Silverlight), or multiple LinkShapes (WPF or Silverlight 4), all
sharing the same Route geometry
� Silverlight
4: Added LinkShape, NodeShape, SelectionHandle, and ToolHandle
classes inheriting from Path, for XAML compatibility with GoWPF; however
at the present time a NodeShape element must still be a child of a NodePanel
� Added
NodeFigure.LineH and LineV for simple horizontal and vertical
lines
� Added
Node.FindTreeParts method, to collect all of the Parts in a
subtree including the Node itself and the Links connecting them
� Added
Group.FindSubGraphParts method, to collect all of the Parts that
are directly or indirectly members of a Group, including Links
Controls
� Made
minor improvements to default templates
� Greatly
improved initial loading time when link Route.Routing is AvoidsNodes
or when Route.Curve is JumpOver or JumpGap
� Added
Diagram.TreePath property, to control tree operations such as Node.ExpandTree
or dragging subtrees when DraggingTool.Inclusions="SubTree". The default value assumes that links go from
parent nodes to child nodes; when TreePath="Source", it
assumes that each child may have a link to its parent node.
� Animated
scrolling and zooming:
� Added
DiagramPanel.SetScaleAndPosition that animates those property changes
� Added
DiagramPanel.ZoomTime property to control the speed of these animations
� Improved
DiagramPanel's handling changes in alignment, DiagramBounds, and Size
to animate transition by calling SetScaleAndPosition
� Improved
DiagramPanel.MakeVisible and CenterPart to call animated SetScaleAndPosition
� Added
DiagramPanel.FindPartAt and FindPartsAt methods, for convenience
� Added
Diagram.InitialCenteredNodeData and CenteredNodeData properties,
to make it easier to center a Node given a node data either after the
initial layout or frequently
� Silverlight
4: Added Diagram.ContextMenuEnabled property, default value false, to
make it easier to define a default ContextMenu for a Diagram. This property does not affect context
menus defined in data templates for nodes or links.
� Added
DiagramPanel.MakeBitmap overload that takes an Action
that is called with the rendered BitmapSource; this is useful in
Silverlight where the resulting BitmapSource is only filled in later,
asynchronously
� Added
PartManager.FindNodesForData(IDataCollection), and FindPartsForData,
for convenience in finding collections of Nodes given some data
� Added
PartManager.UpdatesRouteDataPoints property and protected virtual UpdateRouteDataPoints
method, to support saving Route.Points to link data
� Improved
PrintManager:
� Added
PrintManager.Bounds property, to specify what part of the model to print
� Added
PrintManager.Parts property, to specify a collection of Parts to
print
� Added
PrintManager.PageOptions property and PrintPageOptions enum
� Added
PrintManager.BackgroundTemplate and ForegroundTemplate
properties, DataTemplates that allow you to customize what is printed on
each page
� Added
PrintManager.PageInfo class; each page template is bound to a PageInfo
describing the currently printing page
Layouts
� Added
CircularLayout and corresponding CircularNetwork/Vertex/Edge
classes, and various Circular... enum types
� Added
LayoutChange.ViewportSizeChanged enum value, used by Palette.Layout
� Added
TreeAlignment enum values: Bus, TopLeftBus, BottomRightBus
Models
� Added
GraphLinksModelLinkData.Points property
� Added
overloads to ...Model.Load methods to allow supplying a function that
takes an XElement and returns a new instance of a data class
� Added
ValidUnconnectedLinks enum and GraphLinksModel.ValidUnconnectedLinks property
� Improved
GraphLinksModel.CopyLink2 and CheckValidLink to respect ValidUnconnectedLinks
Tools, Commands
� Added
WheelBehavior enumerated type
� Added
DiagramTool.WheelBehavior dependency property controlling StandardMouseWheel
method
� Added
protected method DiagramTool.GetWheelDelta()
� Added
TextEditingTool.Starting property and TextEditingStarting enum,
to control how and when users can start in-place editing of text
� Added
DraggingTool.DraggableLinks dependency property, to allow a single link
to be dragged by the user and possibly connected to valid ports on stationary
nodes
� If
the model is an ILinksModel and its ValidUnconnectedLinks
property is true:
� Improved
LinkingBaseTool.IsValidFrom, IsValidTo, IsValidLink to allow a null FromNode
or ToNode for a Link
� Improved
LinkingTool to allow drawing a partly-connected link
� Improved
RelinkingTool to allow reconnecting a link to nothing and to allow
reconnecting the unconnected end of a link to a valid port
� Added
LinkingTool.StartElement, to enable modal usage of LinkingTool
starting at a given FrameworkElement without depending on Diagram.FirstMousePointInModel
� Added
Part.ResizeElementName attached property, to make it easier to have the ResizingTool
resize an element of a Node that is different than the Part.SelectionElement
� Added
CommandHandler.DeletingInclusions and CopyingInclusions
properties, to control whether the Delete and Copy commands
should also operate on subtrees of the selected nodes