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

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

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: 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: 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.
Unplanned
Last Updated: 20 Jan 2022 15:07 by ADMIN
Currently, you can hit an ArgumentNullException in case you are using the GraphSource feature of RadDiagram. The exception is thrown if you define a ContainerShapeStyle or ContainerShapeStyleSelector that adds a Style with a TargetType that is different than the one of the container added to the diagram. 

Throw a more descriptive error that tells the concrete reason. In this case, the issue relates to the wrong TargetType of the Style.

To reproduce the error, it is enough to add a container node (ContainerNodeViewModelBase<NodeViewModelBase>) in the graph source and then to add a ContainerShapeStyle with a wrong TargetType. For example, use a type of Button.
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();

Declined
Last Updated: 21 Nov 2022 09:19 by ADMIN
Created by: Bartosz
Comments: 2
Category: Diagram
Type: Bug Report
0

Hi,

In project we have noticed that sometimes for RadDiagram.ConnectionManipulationCompleted we receive unexpected values in event.

This problem is not systematic but it occurs often at the drag of new connection.

To make it reproducible for you I used CustomConnectors sample project from Diagram.

For easier analysis I recorded a video with bug and changes to CustomConnectors project.

 

Best regards,

Bartosz

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