In Development
Last Updated: 13 Oct 2021 12:52 by ADMIN
Created by: Petar Mladenov
Comments: 3
Category: Diagram
Type: Feature Request
Currently large diagrams are hard to export with good quality because of the memory limitation in WritableBitmap when the DPI is increased.

 -- One option is to use BitMapCacheBrush (discussed here

 -- Another option is to export multiple images of the diagram which cover it all. Then possibly combine these pictures into one.

 -- Also , you can try increasing the operating memory of your Visual Studio
Last Updated: 04 Oct 2021 11:56 by ADMIN
If two connections are crossing one another at a connection point, the connection bridge (bow or gap) is not drawn.
This is reproducible only with the ConnecitonBridge property of RadDiagram set to Bow or Gap.

A possible workaround is to create a class that derives from RadDiagramConnection and override its CreateGeometry, where you can manually calculate and create the geometry of the connection line along with a connection bridge geometry.
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
Last Updated: 17 Sep 2021 06:16 by ADMIN
Release LIB 2021.3.920 (20 Sep 2021)
Use TextTool to create shape with no text but with background.

Pressing enter will close the tool. But the shape remains visible, but you cannot neither select it nor delete it with mouse / keyboard.
By design this shape should be removed both from the Shapes collection and from the diagram surface.

As a workaround you can try deleting this shape manually by overriding the Diagram's CommandExecuted event : private void diagram_CommandExecuted(object sender, CommandRoutedEventArgs e) { if (e.Command.Name == "Edit Item") { foreach (RadDiagramTextShape textShape in this.diagram.ChildrenOfType<RadDiagramTextShape>()) { if (!this.diagram.Shapes.Contains(textShape)) { Canvas parent = textShape.Parent as Telerik.Windows.Controls.Diagrams.DiagramSurface; if (parent != null) { parent.Children.Remove(textShape); this.diagram.ServiceLocator.GetService<Telerik.Windows.Diagrams.Core.ISelectionService<IDiagramItem>>().ClearSelection(); } } } }
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.
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}"/>

Last Updated: 16 Jul 2021 14:14 by ADMIN

Hundreds of Connections with ConnectionsBridges turned on in diagram. One on top of the others.

StackOverflowException between updating the Connections' Start/End points.

Last Updated: 14 Jun 2021 08:33 by ADMIN
TreeLayout sorts 3 components with 3, 2, 1 shapes respectively. User needs to add 2 shapes in the second group, but does not want to have it sorted after layout on the left of the first group. So an option to preserve the tree layout in each component is needed but to disable the automatic sorting of groups (components). 
Last Updated: 05 May 2021 11:53 by ADMIN

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).

Last Updated: 05 Mar 2021 16:33 by ADMIN
Release LIB 2020.3.1116
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;
		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;

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.

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.

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.
Last Updated: 14 Sep 2020 09:17 by ADMIN
Created by: David
Comments: 1
Category: Diagram
Type: Feature Request

I looked at the RadDiagram options, but it doesn't have anything that compares to a circular relationship chart.  Here's an example:

Part of this article:

I gave some thought at trying to rewrite the code into WPF, but I've got too many other irons in the fire.  Figured I'd ask as this sort of visualization control doesn't appear in your current collection.  I have a project that could benefit from displaying weighted relationships in such a manner, but my choices are either do something sub-par with the RadDiagram option, write one myself, find another controls collection and port everything, or leave the feature out for now.  I'm going for the leave it out option for the moment, and see if your UI wizards can come up with something...

Just as a use case, one of the reasons for wanting this is to diagram conversations between individuals in email messages.  Being able to show who's talking to whom and how frequently using one of these charts for visualization allows you to quickly find patterns...




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
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))'

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.

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.
Last Updated: 05 Feb 2020 08:06 by ADMIN
An API could be created so that an Image can be added to the Background or Grid of the Diagram so that the user can zoom and pan over the image.
1 2 3 4 5 6