Version 1.2 new features

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

Here’s a list of forum topics about 1.2: