New to Telerik UI for WPF? Download free 30-day trial

Backwards Compatibility

This article describes the breaking changes introduced in the RadDiagram framework.

Q1 2014


  • IConnector now inherits ISerializable interface by default

What to do now:

If you implement IConnector interface in your solution to create a custom connector, you will have to extend your implementation to also implement the ISerializable interface.

Q1 2013

During Q1 2013 we worked on improving our RadDiagram and especially the RadDiagramConnections. We added a connection editing points which you can easily set programmatically or manually with Ctrl + MouseClick.

Below you can find the breaking changes related to connections:

  • Straight connection type is marked Obsolete. Instead of it, you can use Polyline connection type which is straight by default.

  • RoundedPolyline connection type is marked Obsolete. The way to achieve the rounded connection effect is to use the Polyline connection type and set the ConnectionRoundedCorners property of the RadDiagram to True.

  • Routing of the Polyline connections is not automatic anymore. The way to turn on the routing is setting the RouteConnections property of the RadDiagram to True.

  • Bezier Handle Points are not initially positioned in the middle of the distance between the start and end of the connection. To position them , you can use the BezierAutoOffset DiagramConstant or the method SetBezierHandles of the RadDiagramConnnection class. The DiagramConstant BezierHandleMinimumDistance is removed. You should use only BezierAutoOffset.

We also improved our MVVM mechanism and the following method should not be used when using SerializableGraphSourceBase.

  • GetLinkUniqueId method is removed. Now you don't need to provide a unique id for the links - this is done automatically.

In Q1 2013 our RadDiagramContainerShapes are also refactored. We added style and style selectors properties and we also improved the drop behavior. The ContainerLayout property is marked Obsolete and you can consider that it is always set to Auto.

The Print Command from DiagramCommands is marked Obsolete. You have to use the Print Command from Telerik.Windows.Controls.Diagrams.Extensions.DiagramExtensionCommands. Setting its CommandParameter to True will activate our PrintPreviewDialog from the Diagram Extensions.

GeometryFactory class is marked Obsolete and will be deleted in Q2 2013. The methods in it are also available in the class GeometryExtensions.

Q3 2012

With the Q3 2012 release we introduced the following set of changes in the Diagramming Framework:

  • The CommandNames.ResizeShape constant is now renamed to CommandNames.ResizeItem.

  • The CommandNames.ResizeShapes constant is now renamed to CommandNames.ResizeItems.

  • The order of the arguments in the RotatingEventArgs class constructor - RotatingEventArgs(Double oldPosition, Double newPosition, are changed to RotatingEventArgs

  • The RotateRoutedEventArgs class constructor - RotateRoutedEventArgs(RoutedEvent routedEvent, IEnumerable items, Double oldPostion, Double newPostion) is removed. You can instead use the other constructors of the class to create an instance of it.

With this release we significantly improved the implementation, performance and extensibility of the RadDiagramRuler. However, we couldn't have done that without introducing some changes in its definition. You can take a look at the new implementation and features of the control in the Ruler article. However, if you've used its old version, please bear in mind that we've removed the following RadDiagramRuler properties:

  • LabelInterval (LabelIntervalProperty)

  • LabelTemplate (LabelTemplateProperty)

  • Labels (LabelsProperty)

  • TickInterval (TickIntervalProperty)

  • TickTemplateSelector (TickTemplateSelectorProperty)

  • Ticks (TicksProperty)

  • Zero (ZeroProperty)

Due to the improvements in the control, the following classes are no more needed and therefore we removed their definitions:

  • MeasurementUnitConverter

  • ReversedDoubleToPercentageConverter

  • RulerLabelPanel

  • RulerPanelBase

  • RulerTickInfo

  • RulerTickPanel

  • RulerTickTemplateSelector

And we changed the name of the device-independent pixels measurement unit from MeasurementUnit.DIP to MeasurementUnit.Dip.

Q2 2012

With its official release, the Diagramming framework extends its Connectors support by adding the possibility to create custom connectors. However, in order to implement this feature we had to remove the ConnectorPosition enumeration. Instead the position of a connector can now be defined through a string property. But as we wanted to limit the effect of this breaking change, we matched the members of the enumeration to string constants, which are internally resolved to allow you to set up the RadDiagramConnection.Source(Target)ConnectorPosition as Auto, Left, Right, Top or Bottom as before. Below you can find all RadDiagram members affected by the changes in the connectors implementation:

  • The ConnectorPosition enumeration is removed

  • The AddConnection(source, target, sourceConnectorPosition, targetConnectorPosition, isUndoable) method arguments are changed as follows:

    • sourceConnectorPosition argument type is changed to string

    • targetConnectorPosition argument type is changed to string

  • The AddConnection(source, target, connectorsPosition) method arguments are changed as follows:

    • connectorsPosition argument type is changed to string
  • The Attach(source, sourceConnectorPosition, target, targetConnectorPosition) method arguments are changed so that it now takes only two arguments:

    • Source argument of type IConnector

    • Target argument of type IConnector

  • GetConnectionsForShape(shape) method is removed

  • GetIncomingConnectionsForShape(shape) method is removed

  • GetOutgoingConnectionsForShape(shape) method is removed

  • RadDiagramConnection.SourceConnectorPosition type is changed to string

  • RadDiagramConnection.TargetConnectorPosition type is changed to string

The other changes introduced in the Diagramming tools' implementation are listed below:

  • RadDiagram.IsSnapEnabled property is removed. Instead two new properties are introduced:

    • Boolean IsSnapToGridEnabled

    • Boolean IsSnapToItemsEnabled

  • RadDiagram.PositionX and RadDiagram.PositionY properties are removed. Instead one new property is introduced:

    • Point Position
  • RadDiagram.SnapValue is removed. Instead two new properties are introduced:

    • Int32 SnapX

    • Int32 SnapY

  • RadDiagram.Layout(settings) method arguments are changed so that now the method has two arguments:

    • LayoutType type

    • object settings

  • RadDiagramShapeBase.ConnectorActivated event is removed. Instead you can handle the RadDiagramConnector.ActivationChanged event.

  • RadDiagramShapeBase.ConnectorPoints collection is removed. Instead you can use the RadDiagramShapeBase.Connectors collection

Q1 2012 SP1

The Xml property of the RadDiagramShapeBase is removed. Instead you should use the GetXml() method. The reason behind this change is to avoid the performance impact when using the getter of the property.

In this article