yFiles WPF Release Notes

yFiles WPF is the newest bugfix and maintenance release available.

Technical Requirements

  • Visual Studio 2010 or higher for software development with yFiles WPF.
  • Applications based on yFiles WPF require the Microsoft .NET Framework 4.0 runtime (or higher).
  • A browser to view the HTML documentation.
  • A Microsoft Windows operating system that supports the Windows Presentation Foundation.

yFiles WPF - Changes Since 3.0


  • During reparenting, the edges at reparenting nodes were drawn below the group(s) and thus they were not visible. If reparenting was canceled, these edges stayed behind the group(s) and remained invisible.
  • CreateEdgeInputMode did not always start correctly for quick gestures on slow devices.
  • CreateEdgeInputMode did not trigger the EdgeCreationStarted event for programmatic initialization of the edge creation gesture.
  • Setting CreateEdgeInputMode's CancelRecognizer could potentially get the input mode into a broken state.
  • Fixed an unnecessary exception in IGraph.CalculateLabelPreferredSize which was thrown when the label owner was not part of the graph, but all optional parameters have been passed anyway. In that case there was no need to fetch the appropriate LabelDefaults and thus the question of whether the owner is in the graph or not is irrelevant.
  • Labels with NinePositionsEdgeLabelModel now disappear when the owner edge has no visible edge path. This can happen for example when nodes are moved onto each other. Previously they appeared at unexpected locations, including the origin (0,0) and the upper left corner of the source node.
  • UndoEngine now uses the end time of the previous undo unit for automatic bracketing instead of the start time. This improves auto-bracketing to work as intended for undo units spanning a time greater than AutoMergeTime.
  • Changing HandleInputMode.PressedRecognizerTouch has no effect if the input mode is already installed.
  • Switching the GraphControl's InputMode in a key event handler no longer throws an exception.
  • MapperRegistry.AddMapper no longer throws an exception when trying to replace a mapper for an existing key.
  • GeneralPath.GetTangent now returns null if there is no tangent at the requested position. Previously, it returned a bogus tangent.
  • FreeLabelModel.Instance, FreeEdgeLabelModel.Instance, and FreeNodeLabelModel.Instance are now serialized correctly to GraphML when not used as part of their parameters (e.g. within CompositeLabelModel).
  • PartialLayout's EdgeRoutingStrategy setting StraightLine erroneously rerouted all edges in the graph, instead of just the ones that were required.
  • HandleInputMode's CurrentHandle property could not always be obtained during the DragFinished, DragFinishing, DragCanceling, and DragCanceled events of HandleInputMode

Incompatible Changes

  • The return type of GeneralPath.GetTangent has been changed from Tangent to Tangent?.
  • CreateEdgeInputMode now triggers the EdgeCreationStarted event for programmatic edge creation with the DoStartEdgeCreation method.