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
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.
Implement support (or extensibility) for printing the whole diagram in a single page.
PathTool: Possibility to edit the shape path via edit points like the Pen Tool in Blend.
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.
Extend RadDiagram to support natively Venn Diagrams.
Currently there is no straightforward way to notify that a point is added/removed from the ConnectionPoints collection of the RadDiagramConnection.
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>
Add ContainerShape ContentTemplate and ContentTemplateSelector properties in RadDiagram
Implement "Item to Item Snapping" during item resize operation.
Be able to pre-select, printer, page size and page orientation in the RadDiagramPrintPreview. By default, RadDiagramPrintPreview set the printing orientation in landscape even if we created a diagram in portrait.
We use a RadDiagram for what is essentially graphic-art layout. At times, subpixel positioning and extents really are correct for this use case. We have shapes correctly positioned and displaying at subpixel accuracy; however, the selection outline always snaps to a pixel. This is particularly relevant when zoomed in on a piece of art, e.g., aligning semi-transparent edges. It looks odd to have the selection outline lie outside of the visible extents of the art. Furthermore, when moving the art by mouse, the interaction is odd in that the art appears to move smoothly while the selection outline pops from pixel to pixel. This confused our users as to what was really happening as they positioned things. The relevant code for this is in RadDiagram.UpdateManipulationAdorner, which uses Math.Floor and Math.Ceiling to snap the line to pixel borders. This was apparently put in to solve issues of blurriness from having a, say, 1-pixel selection outline lie at a sub-pixel position. Perhaps a dependency property to control whether this snapping happens?
When using TreeLayout.Right if a shape has a single child that is shorter (in terms of height) the tops of the shapes are aligned, this means the centers of the shapes do not align and so the connection is 'crooked'. It would surely make more sense if the centres of the shapes were aligned.
Create example with data base tables that visualizes self referencing business objects.
At the moment the ItemSnaping works only with the outer bounds but it should also snap to the centers.