Implement automatic-layout of Polytree (http://en.wikipedia.org/wiki/Polytree) graphs. Layout with multiple roots in single graph component. We added an SDK sample showing how you can layout such tree hierarchies in RadDiagram: https://github.com/telerik/xaml-sdk/tree/master/Diagram/MultipleRootsInSingleTreeLayout
When you start resize operation on a grouped ContainerShape and Shape in it the Container shape size can not be shrink-ed more than the previous BottomRight position of the shape in it (despite that the shape size is changed and there is space for the collapsing). Available in LIB version: 2016.1.21
When you switch between two different positions and zoom levels leads to a wrong visualization of the diagram items.
Windows DPI is 125 % (you need to sign out from win 10 then sign in again in order to apply the setting successfully). Diagram is hosted in RibbonWindow. The diagram ruler does not show the ticks and labels on the left of the zero tick (label). The Position property of Diagram could (0,0) or (500, 0), (300, 0) etc... Check the attached image for better illustration. Workaround could be replacing the RibbonWindow with MS Window.
Implemented functionality that detects a connection creation being cancelled through the Esc key and notifies the user In order to take advantage of this functionality you should inherit the ConnectionTool of RadDiagram and override the KeyDown method - if it returns true the tool action has been canceled. More about how to customize RadDiagram tools you can find in our help topic " Tools Customization": http://www.telerik.com/help/wpf/raddiagram-tools-customization.html Available in LIB version: 2014.3.1103
A small glitch appears when the pencil tool is used. The glitch is demonstrated in the attached image.
When you paste a big image (bigger than 1024px) it gets blurry
The middle point in this context is a point that is located on the line segment that is positioned after the middle length of the line. Add a property on the RadDiagramConnection class that returns the middle point. The property should be DependencyProperty so it can be bound with OneWayToSource mode in order to be able to notify the bound view model (if such is presented).
Currently, you can get this information by combining the CalculateMiddlePointOfLine and AllPoints methods of the ConnectionUtilities class.
var allConnectionPoints = Telerik.Windows.Diagrams.Core.ConnectionUtilities.ConnectionUtilities.AllPoints(radDiagramConnection);
var startAndEndPoints = new Tuple<Point, Point>(radDiagramConnection.StartPoint, radDiagramConnection.EndPoint);
Point middlePoint = Telerik.Windows.Diagrams.Core.ConnectionUtilities.CalculateMiddlePointOfLine(startAndEndPoints, allConnectionPoints);
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
This is reproducible when: - Copy a shape and paste it in the diagram - Drag and drop from the diagram toolbox
Implement "Item to Item Snapping" during item resize operation. DECLINED: Duplicate with https://feedback.telerik.com/Project/143/Feedback/Details/101276-diagram-implement-item-to-item-snapping-during-resize
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; } } }
Using TreeLayout may lead to a memory leak because the TreeLayoutProcessor keeps a reference to the layout Root. Available in LIB version: 2014.3.1402
OrgTreeRouter holds references to RadDiagramConnections which are not removed from memory. Available in LIB version: 2014.3.1409