Completed
Last Updated: 12 Nov 2024 08:17 by ADMIN
Release Telerik UI for WPF 2024.4.1111 (2024 Q4)

This is a regressiion issue in the 2024.3.924 release of Telerik UI for WPF.
Save and load of the saved XML should result of the same item IDs for every RadDiagramItem (shapes, connections).

To work this around, you can create a custom SerializationService and override its DeserializeItems method, where you can change the "makeUnique" parameter.

The issue manifests also when doing drag/drop from the RadDiagramToolBox or any other custom drag drop implementation that uses the DiagramDropInfo class (which is automatically handled by the RadDiagram's drop internal code). In this case the custom service approach won't work because the drag/drop deserialization works with a separate instance of SerializationService (SerializationService.Default) which cannot be changed. In this case, you can subscribe RadDiagram to the DragDropManaged.Drop event and manually call the SerializationService.Default.DeserializeItems method.

 public class CustomSerializationService : SerializationService
 {
     public CustomSerializationService(IGraphInternal graph) : base(graph)
     {
     }

     public override IEnumerable<IDiagramItem> DeserializeItems(SerializationInfo serializationInfo, bool makeUnique = false)
     {
         makeUnique = false;
         return base.DeserializeItems(serializationInfo, makeUnique);
     }
 }

 public MainWindow()
 {
     InitializeComponent();

     this.diagram.ServiceLocator.Register<ISerializationService>(new CustomSerializationService(this.diagram));

     DragDropManager.AddDropHandler(this.diagram, OnDiagramDrop);
 }

 private void OnDiagramDrop(object sender, Telerik.Windows.DragDrop.DragEventArgs e)
 {
     var data = DragDropPayloadManager.GetDataFromObject(e.Data, typeof(DiagramDropInfo).Name);
     if (data is DiagramDropInfo)
     {
         SerializationService.Default.DeserializeItems(((DiagramDropInfo)data).Info, false);
     }
 }

Completed
Last Updated: 01 Jul 2024 11:22 by ADMIN
Release 2024.2.701 (Preview)

In the Swimlane diagram example (Data Visualization -> Diagrams -> Swimlane) the application crashes, showing at least one but often more than one error message.

How to reproduce:

  • Open the Swimlane example.
  • Click the area that is labelled as "Process name" (also marked in the attached screenshot)
  • One or multiple Message boxes containing the exception message
{DependencyProperty.UnsetValue} is not a valid value for the Property "Background"

pop up (see other screenshot)

Completed
Last Updated: 02 Aug 2023 05:55 by ADMIN
Release LIB 2023.2.807 (7 Aug 2023)
When performing an undo operation for restoring a deleted RadDiagramContainerShape containing a child shape, an InvalidOperationException is thrown. The scenario is reproduced when the RadDiagram is used in a databound scenario. 
Completed
Last Updated: 19 Jan 2023 14:50 by ADMIN
An exception is raised when the active tool of the RadDiagram is ConnectorTool and a shape is clicked when its UseDefaultConnectors property is set to false.
Completed
Last Updated: 19 Jan 2023 14:50 by ADMIN
Currently snapping to the grid is disabled when moving the mouse closer than 10 pixels to a shape. A constant can be exposed to control this distance.
Completed
Last Updated: 19 Jan 2023 14:50 by ADMIN
Release LIB 2022.3.1128 (28 Nov 2022)
Sometimes, when fast dragging a connector out of shape to create a new connection, connector might stay in Active state. This can also result in incorrect event args in ConnectionManupulationCompleted event leading to wrong application logic.
Completed
Last Updated: 07 Jun 2022 08:05 by ADMIN
Release LIB 2022.2.613 (13 June 2022)

NullReferenceException is thrown when trying to save RadDiagram instance that contains a RadDiagramShape with its Geometry assigned to a GeometryGroup value. 

To work this around, you can flatten the GeometryGroup before setting the shape's Geometry property. This is done by calling the GetFlattenedPathGeometry() method of the GeometryGroup.

shape.Geometry = group.GetFlattenedPathGeometry();

Completed
Last Updated: 11 Apr 2022 10:54 by ADMIN
Release LIB 2022.1.411 (11 April 2022)

Most problematic issue when container can contains a container inside of it.

In mvvm demo project i modified load/save button to Clear diagram and display different content.

It works but after few click there is a recurrence call to update Z indices.

The reason to create such combination is to have hierarchy in diagram to display diagram from general view to detailed view.

 

 

 

Completed
Last Updated: 01 Feb 2022 12:43 by ADMIN
Release LIB 2022.1.207 (7 Feb 2022)
Removing an item from the RadDiagram results in all groups which do not have an IDiagramItem in them to be cleared - even if they are not empty and contain other groups.
Completed
Last Updated: 07 Feb 2022 08:01 by ADMIN
Release LIB 2022.1.207 (7 Feb 2022)
If connected shapes are shifted in an overlapping manner, a freeze occurs due to the AStarRouter's routing logic if a line cannot be formed on the outside.
Completed
Last Updated: 21 Sep 2021 10:44 by ADMIN
Release LIB 2021.3.927 (27 Sep 2021)
Expanding the top parent of nested containers leads to rendering the last sub-container, nevertheless its parent is collapsed
Completed
Last Updated: 19 Aug 2021 06:03 by ADMIN
Release LIB 2021.2.823 (23 Aug 2021)
Currently, the router can be slow in situations with big amount of items. Also, in some corner cases, the routing of a specific connection can hang and the A* algorithm never continues to the next connection in the diagram.
Completed
Last Updated: 28 Jul 2021 05:48 by ADMIN
Release LIB 2021.2.802 (2 Aug 2021)

Currently, the content of RadDiagramShape element alignment can be changed via its HorizontalContentAlignment and VerticalContentAlignment. However, in RadDiagramTextShape, those properties don't take effect. Instead the text content is always centered.

At this point, you can achieve this requirement, by extracting the ControlTemplate of RadDiagramTextShape and bind the corresponding properties of the ContentPresenter to the parent shape. For example:

<ContentPresenter x:Name="NormalContent"
				  Margin="{TemplateBinding Padding}"
				  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
				  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

Completed
Last Updated: 16 Feb 2022 14:11 by ADMIN
Release R1 2022 SP1

In a NetCore project, when dragging the diagram from the toolbox into the designer, an exception is thrown inside the designer. 

With Visual Studio 2019 Preview v. 16.10.0. Preview 2.0, Net 5 project => when dragging from the ToolBox - the VS goes into a non-responsive state (Vs is busy is shown or the VS crashed and closed automatically).

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: 22 Jan 2021 13:05 by ADMIN
Release LIB 2021.1.125 (1/25/2021)

The exception throws when you use RadDiagram in a data binding scenario by populating its GraphSource and you want to draw a shape using the RadDiagramRibbon's ShapeTool. 

InvalidOperationException: 'Cannot modify the Items collection when the GraphSource is set.'

To work this around, use the PreviewMouseDown, PreviewMouseMove and PreviewMouseUp events of RadDiagram in order to prevent the default logic executed by the ShapeTool. Then, in the event handlers, implement a custom logic that works with the diagram GraphSource.

private void RadDiagramRibbon_Loaded(object sender, RoutedEventArgs e)
{
	var toolService = diagram.ServiceLocator.GetService<IToolService>() as ToolService;
	this.shapeTool = (ShapeTool)toolService.ToolList.FirstOrDefault(x => x is ShapeTool);
}

private Point startPoint;
private bool isShapeCreationInProgress;
private MyNode currentShapeModel; // where MyNode derives from NodeViewModelBase and expose an additional Geometry property 
private ShapeTool shapeTool;

private void RadDiagram_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{			
	if (this.shapeTool.IsActive && !this.isShapeCreationInProgress)
	{
		this.isShapeCreationInProgress = true;
		this.startPoint = this.diagram.GetTransformedPoint(e.GetPosition(this.diagram));

		this.currentShapeModel = new MyNode()
		{
			Geometry = this.shapeTool.Geometry,
			Position = this.startPoint,
			Width = 0,
			Height = 0
		};
		var source = (MyGraphSource)this.diagram.GraphSource;
		source.AddNode(this.currentShapeModel);
		e.Handled = true;
	}
}

private void RadDiagram_PreviewMouseMove(object sender, MouseEventArgs e)
{
	if (this.shapeTool.IsActive && this.currentShapeModel != null && this.isShapeCreationInProgress)
	{
		var transformedPoint = this.diagram.GetTransformedPoint(e.GetPosition(this.diagram));
		var width = Math.Abs(this.startPoint.X - transformedPoint.X);
		var height = Math.Abs(this.startPoint.Y - transformedPoint.Y);
		var x = Math.Min(this.startPoint.X, transformedPoint.X);
		var y = Math.Min(this.startPoint.Y, transformedPoint.Y);

		this.currentShapeModel.Width = width;
		this.currentShapeModel.Height = height;
		this.currentShapeModel.Position = new Point(x, y);
		e.Handled = true;
	}
}

private void RadDiagram_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
	this.isShapeCreationInProgress = false;
	e.Handled = true;
}

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: 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.
1 2 3 4 5 6