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)
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 http://www.telerik.com/forums/low-resolution-using-exporttoimage-on-big-diagram) -- 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
Implement support (or extensibility) for printing the whole diagram in a single page.
When zooming out on more than 500-600 shapes and then panning, if telerik:DiagramSurface.IsVirtualizing="True", the performance is slower. When virtualization is off, the performance is a little better.
Currently the Bezier Connections Start,End Points and the two editing points are created in a common Canvas. There is no mechanism to hide the editing points but show the start and end point. Note: Currently there's a way to hide editing or intermediate points - you'll need a style and a converter. We've added a new SDK example (HideBezierHandles) demonstrating this.
PathTool: Possibility to edit the shape path via edit points like the Pen Tool in Blend.
ManipulationAdorner (including Rotation thumb, resizing thumbs) should not be zoomed along with the shape.
Allow the user to customize the caps (SourceCapType and TargetCapType) of the connection. Exposed are two new virtual methods in the RadDiagramConnection - CreateSourceCapGeometry and CreateTargetCapGeometry Available in Q1 2015
Inherit RadDiagramConnector and add it to a Shapes' Connectors collection. Copy / Pasting (or other serialization / deserialization action) the shape creates RadDiagramConnector, not the custom type of connector.
Extend RadDiagram to support natively Venn Diagrams.
Extend the layout mechanism to allow control over the layouted elements in order to exclude all disconnected shapes from the layout and reorder connections by their target connectors.
Connect the Diagrams BackgroundGrid to the Ruler's Measurement Unit and ScaleDefinitions. Currently only in DPI measurement unit the scaledefinitions and diagram background grid look good and consistent.
Expose a property to set the DiagramBehaviors.TextWrapping attached property on a diagram level
Currently there is no straightforward way to notify that a point is added/removed from the ConnectionPoints collection of the RadDiagramConnection.
In data binding scenarios these propeties are not updated automatically. Currently if you want to bind the StartPoint and EndPoint properties of the RadDiagramConnection you will have to update new position of the connection manually. This can be done in the PropertyChanged event of the connection. In the Handler you can cast your connection to IConnection and call the Update() method, if the e.PropertyName holds the property that you change. Will be available in Q1 2015 Release.
Import from DWG files needed.
A possible workaround is to use an attached property. Basically, we've added ConnectionPointsProperty in AttachedProperties class and added binding to this new property in the style of the connection. public class AttachedProperties { public static RadDiagram Diagram { get; set; } public static readonly DependencyProperty ConnectionPointsProperty = DependencyProperty.RegisterAttached("ConnectionPoints", typeof(List<Point>), typeof(AttachedProperties), new PropertyMetadata(null, OnConnectionPointsChanged)); public static IEnumerable<Point> GetConnectionPoints(DependencyObject obj) { return (IEnumerable<Point>)obj.GetValue(ConnectionPointsProperty); } public static void SetConnectionPoints(DependencyObject obj, IEnumerable<Point> value) { obj.SetValue(ConnectionPointsProperty, value); } private static void OnConnectionPointsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var connection = d as RadDiagramConnection; var connectionPoints = e.NewValue as List<Point>; if (connection != null && connectionPoints != null) { for (int i = 0; i < connectionPoints.ToList().Count; i++) { connection.ConnectionPoints.Add(connectionPoints.ToList()[i]); } connection.IsModified = true; (connection as IConnection).Update(); } } } <telerik:RadDiagram.ConnectionStyle> <Style TargetType="telerik:RadDiagramConnection"> <Setter Property="ConnectionType" Value="Polyline"/> <Setter Property="local:AttachedProperties.ConnectionPoints" Value="{Binding MyConnectionPoints}"/> </Style> </telerik:RadDiagram.ConnectionStyle>
Implement "Item to Item Snapping" during item resize operation.
Add ContainerShape ContentTemplate and ContentTemplateSelector properties in RadDiagram