Last Updated: 02 Sep 2019 13:42 by ADMIN
Release R3 2019
Setting ContainerMargin constant to 0 will make the margin 0 on the left, bottom and right side of the content. However, the shapes in the content of the container, will overlap its header. Expected is child shapes do not overlap any borders in the container.
Last Updated: 17 May 2019 15:15 by ADMIN
Release LIB 2019.2.520 (05/20/2019)

The exception is thrown for the RotationAngle property.

The issue can be observed also in the opposite direction - the diagram is serialized on a machine with some culture (for example Portugal Porguese - pt-PT) and then restored on a machine with an English culture.

The issue reproduces only when saving and loading between cultures which numeric separators are different. For example, with Bulgarian culture, the number 4.5 is represented as 4,5 (with a comma). With English culture the number will be represented as 4.5 (with a period).

To work this around, create a custom RadDiagramShape and override its Deserialize() method. Then parse the RotationAngle manually, and set it to the RotationAngle property of the shape. After this, set the RotationAngle of the SerializationInfo to null, in order to prevent the default restoring of the property.

public partial class CustomShape : RadDiagramShape, IEquatable<BaseShape>
    public override void Deserialize(SerializationInfo info)
        if (info["RotationAngle"] != null)
            var angle = Convert.ToDouble(info["RotationAngle"].ToString(), CultureInfo.InvariantCulture);
            this.RotationAngle = angle;               
            info["RotationAngle"] = null;

Last Updated: 22 Jul 2019 06:44 by ADMIN
Release LIB 2019.2.722 (7/22/2019)

To reproduce this use the following code snippet:

    <telerik:RadDiagramShape Content="Shape 1" Position="100, 100"/>
    <telerik:RadDiagramShape Content="Shape 2" UseGlidingConnector="True" Position="300, 100"/>

Steps to reproduce:

1. Start a new connection from Shape 1, by dragging one of its connectors.
2. Drag the connection over Shape 2. 

Expected: The connector closest to the mouse should get highlighted and when you drop the connection it should get attached to the shape.
Actual: The closest connector is not highlighted. Also, when you drop the connection over the target shape it doesn't get attached.

Last Updated: 11 Feb 2019 13:32 by ADMIN
When executing the DiagramCommands.Nudge command with a provided number as a parameter, the movement of the selected shape is incorrect. 
Last Updated: 12 Feb 2019 12:58 by ADMIN
The undo and redo actions don't work for the "Move Items" event. This means that nothing will happen when you select a Bezier connection (ConnectionType=Bezier) and drag/drop it to a new position, then press Ctrl+Z.
Last Updated: 20 Aug 2018 08:10 by ADMIN
RadDiagramShape has NULL content but has DataContext and ContentTemplate.

In the ContentTemplate there are UIElements defined. Their automation peers are not added in the automation tree.

This can be observed in UIVerify tools.
Last Updated: 13 Jun 2018 06:19 by ADMIN
As a workaround, you can create a custom class which derives from RadDiagramConnector and override the Serialize() method.

public class CustomConnector : RadDiagramConnector
        static CustomConnector()
            DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomConnector), new FrameworkPropertyMetadata(typeof(CustomConnector)));
    public override SerializationInfo Serialize()
            var info = new Telerik.Windows.Diagrams.Core.SerializationInfo(this.GetType());

            if (this.Name != null) info[Telerik.Windows.Diagrams.Core.SerializationConstants.ConnectorName] = this.Name;

            info[Telerik.Windows.Diagrams.Core.SerializationConstants.Offset] = this.Offset.ToInvariant();

            if (Telerik.Windows.Controls.DependencyObjectExtensions.IsLocalValueSet(this, RadDiagramConnector.WidthProperty)) info[Telerik.Windows.Diagrams.Core.SerializationConstants.Width] = this.Width.ToInvariant();
            if (Telerik.Windows.Controls.DependencyObjectExtensions.IsLocalValueSet(this, RadDiagramConnector.HeightProperty)) info[Telerik.Windows.Diagrams.Core.SerializationConstants.Height] = this.Height.ToInvariant();

            return info;
Last Updated: 26 Oct 2017 07:53 by PeterS
This is reproducible only if you set the RotationOrigin property to a value different than (0.5,0.5). Also, the rotation angle is wrong only on the first call of the Rotate() method of the service. 

To work this around you can create a custom RotationService and override its CalculateRotationAngle() method where you can calculate custom angle.
Last Updated: 18 Oct 2017 08:07 by ADMIN
Last Updated: 25 Oct 2017 13:53 by ADMIN
Setting diagram.UndoRedoService.UndoBufferSize to 0 after doing some undoable action in diagram does not stop the undo operations.

This is a regression issue. 

UndoBufferSize 0 means no undo possible.  
RedoBufferSize 0 means no redo possible.

Worakround if applicable: Set the UndoBufferSize to 0 after InitializeComponent. (this is if you don't need undo/redo at all).
Last Updated: 12 May 2017 08:14 by ADMIN
Using a custom router and gliding connectors may lead to a StackOverflow Exception.

The exception is due to an endless update of the connection Start/End points and the ConnectionPoints.

Resolution: The fix will be included in R2 2017 SP in June 2017.

Generally, avoid using GlidingConnectors and custom Router which calculates intermediate points based on connections' StartPoint/EndPoint. This is а prerequisite of circular dependency between Start/EndPoint and ConnectionPoints. Gliding Connectors essence is to set StartEndPoints and sometimes they are based on the connection points' first and last point.

On the other hand, custom router based on Start/EndPoint makes the opposite- connection points depend on start/end. 

Instead, the client can use the connection.Source.Bounds.Center (Top, Bottom, Left, Right etc) and connection.Target.Bounds.Center(Top, Bottom, Left, Right etc) in a custom router.

Available in LIB version: 2017.2.515
Last Updated: 26 Sep 2016 10:52 by ADMIN
Editing any diagram shape does not take into account the fontsize of the shape.

A possible workaround is to wire to shape's Loaded event as below:
private void RadDiagramTextShape_Loaded(object sender, RoutedEventArgs e)
            RadDiagramTextShape shape = sender as RadDiagramTextShape;
            TextBox tBox = shape.ChildrenOfType<TextBox>().FirstOrDefault();
            tBox.FontSize = shape.FontSize;

Available in LIB version: 2016.3.926
Last Updated: 21 Oct 2016 11:59 by ADMIN
Use Bezier Connection.

Change Start / End Handles with Mouse or with SetBezierHandles method in code.

Rotate/ Drag the connection and notice it is being shifted / its geometry changes unexpectedly.

Possible workaround override the RadDiagramConnection like so:

  public class CustomConnection : RadDiagramConnection
        protected override void OnStartPointChanged(System.Windows.Point newValue, System.Windows.Point oldValue)
            this.ConnectionPoints[0] = new Point(
                    this.ConnectionPoints[0].X - newValue.X + oldValue.X,
                    this.ConnectionPoints[0].Y - newValue.Y + oldValue.Y);         
            base.OnStartPointChanged(newValue, oldValue);           

        protected override void OnEndPointChanged(Point newValue, Point oldValue)
            this.ConnectionPoints[1] = new Point(
                    this.ConnectionPoints[1].X - newValue.X + oldValue.X,
                    this.ConnectionPoints[1].Y - newValue.Y + oldValue.Y);         
            base.OnEndPointChanged(newValue, oldValue);           

Available in R3 2016 SP
Last Updated: 29 Jul 2016 08:15 by ADMIN
Last Updated: 13 Sep 2016 08:01 by ADMIN
Last Updated: 07 Oct 2016 13:53 by ADMIN
Created by: Ivan
Comments: 0
Category: Diagram
Type: Bug Report
When you serialize a bezier connection moved with mouse, the deserialization is not done -well - connection is not with the proper connection points.

Possible workaround:

   private void diagram_ConnectionDeserialized_1(object sender, Telerik.Windows.Controls.Diagrams.ConnectionSerializationRoutedEventArgs e)
            Point startBezier = (Point)Utils.ToPoint((e.SerializationInfo["start"].ToString()));
            Point endBezier = (Point)Utils.ToPoint((e.SerializationInfo["end"].ToString()));

            Dispatcher.BeginInvoke(new Action(() =>
                (e.Connection as RadDiagramConnection).SetBezierHandles(startBezier, endBezier);
            }), DispatcherPriority.Loaded);

        private void diagram_ConnectionSerialized_1(object sender, Telerik.Windows.Controls.Diagrams.ConnectionSerializationRoutedEventArgs e)
            e.SerializationInfo["start"] = Utils.ToInvariant(e.Connection.ConnectionPoints[0]);
            e.SerializationInfo["end"] = Utils.ToInvariant(e.Connection.ConnectionPoints[1]);

Available in LIB version: 2016.3.1010
Last Updated: 06 Apr 2016 11:22 by Darko
Group of 3 containers A B and C is being dragged. B is nested in A, C is separate.

Group is dragged by dragging B. 

Issue 1 => B goes into drop aware state with red border around it.

Issue 2 => when releasing the mouse B and C become children of A.

Will be available in R2 2016 Release.
Last Updated: 14 May 2016 10:45 by ADMIN
Available in LIB version: 2016.2.516
Last Updated: 01 Feb 2016 08:44 by ADMIN
Custom SettingsPane is designed to edit property from the shapes (or connections) DataContext via

extensions:SettingsPaneView.EditorPropertyName="DataContext.ShapeName" kind of binding.

If group of shapes are selected, the editing works only for the first selected shape but it should work for all select, just like when you edin non-databound diagram shapes and change their text for example. 

Available in LIB version: 2016.1.21
Last Updated: 14 Jun 2016 07:50 by ADMIN
The settings pane doesn't take into account the scenario when its popup is opened close to the top or bottom bounds of the screen, in the calculation of its vertical position. 

Available in R2 2016 SP
1 2 3