Completed
Last Updated: 22 Jan 2021 10:44 by ADMIN
Release LIB 2021.1.125 (1/25/2021)

StackOverflowException is thrown when the Layout() method of RadDiagram is called and the diagram's router is OrgTreeRouter. To reproduce this  use TreeLayoutSettings.

To work this around, add bigger HorizontalSeparation and VerticalSeparation for the TreeLayoutSettings. Or disable the connections routing using the RouteConnections property of RadDiagram.

Completed
Last Updated: 16 Nov 2020 13:36 by ADMIN
Release LIB 2020.3.1116
RadDiagram with virtualization turned off.

Randomly positioned 5000 shapes are added in Diagram.

For the test, Shapes are with simplified template consisting pretty much of a single Border and nothing else.

On maximized WPF window, Diagram Load for about 3-3.5 seconds.

On normal WPF window, DIagram loads for about 15 seconds.

Completed
Last Updated: 02 Oct 2020 07:20 by ADMIN
Release LIB 2020.3.912
In some cases, a RadDiagramConnection with its UseFreeConnectors property set to True is not loaded correctly from xml.
Completed
Last Updated: 31 Aug 2020 10:33 by ADMIN
Release LIB 2020.2.831
The BackgroundGrid.CellSize attached property is not applied when in NoXAML scenario or when the theme changes with StyleManager
Completed
Last Updated: 26 May 2020 08:34 by ADMIN
Release LIB 2020.2.525 (5/26/2020)

While performing Cut operation inside RadDiagram, an exception in the MS Clipboard occurs with the following message:

System.Runtime.InteropServices.COMException: 'OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))'

Completed
Last Updated: 13 Feb 2020 09:02 by ADMIN
Release R1 2020 SP1

If we have a custom shape that derives from RadDiagramShapeBase and we rotate it at some degree (90) for example, and then resize it the diagram's selection adorner is misplaced with the shape. Workaround:

Set RenderTransofrmOrigin = new Point(0.5, 0.5) to the shape.

Other workaround: Derive the custom shape from RadDiagramShape, instead of RadDiagramShapeBase.

Completed
Last Updated: 11 Feb 2020 13:11 by ADMIN
Release R1 2020 SP1
In DiagramRibbon the buttons, numerics, combos, selectors which are not bound to Diagram or DiagramRibbon Commands, fail to execute their actions in Simplified mode.
Completed
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.
Completed
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:RadDiagram>
    <telerik:RadDiagramShape Content="Shape 1" Position="100, 100"/>
    <telerik:RadDiagramShape Content="Shape 2" UseGlidingConnector="True" Position="300, 100"/>
</telerik:RadDiagram>

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.


Completed
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;
        }
        base.Deserialize(info);
    }
}

Completed
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.
Completed
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. 
Completed
Last Updated: 17 Jan 2019 11:22 by ADMIN
ADMIN
Created by: Zarko
Comments: 16
Category: Diagram
Type: Feature Request
35
You should be able to prevent the horizontal/vertical overlapping of routed connections . This way the connections should be easier to differentiate.

To better differentiate connections, users might:

            --- use labels on the connections

            --- use bezier connections

            --- use different colors for different connections

            --- use more custom connectors and attach the connections to not used connectors

            -- use AStartRouter instead of the default one (Grid Router)


This feature is available with our latest official version - R1 2019.
Completed
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.
Completed
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();
            this.SerializePrimitives(info);

            return info;
        }
    }
}
Completed
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. 

http://docs.telerik.com/devtools/wpf/controls/raddiagram/features/services

https://github.com/telerik/xaml-sdk/tree/master/Diagram/CustomServices
Completed
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. 

Expected: 
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).
Completed
Last Updated: 18 Oct 2017 08:07 by ADMIN
Completed
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
Completed
Last Updated: 11 Nov 2016 14:49 by Laurent Kempé
ADMIN
Created by: Petar Mladenov
Comments: 4
Category: Diagram
Type: Feature Request
5
-- Add ClearCache method to clear the undo-redo dictionaries used internally

or

-- make the undo-redo dictionaries auto clear when undo-redo stacks are cleared

Available in LIB version: 2016.3.1114
Clear method of Diagram's UndoRedoService now clears the UndoRedo internal cache automatically.  
What's changed ? The public interface IDiagramContainerGeneratorInternal interface now adds ClearCache method:
A) this.Diagram.UndoRedoService.Clear(); will clear the internal undoredo cache which stores model-container relations. Also this will clear the undo/redo command stacks.
B) this.Diagram.ContainerGenerator as GenericContainerGenerator<RadDiagramItem>).ClearCache(); will clear ONLY the undoredo cache.