Currently, the print preview control provides only options for the current printer, the page orientation and the page size . Include the following options too:
- Paper Format (Lettre, A4, etc.)
- Paper Orientation (Portrait or Landscape)
- Number of copies (1, 2, 3, ...)
- Print Color Settings (Colors or Monochrome)
- Margins
- Resolution (DPI based on the capabilities of the printer)
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.
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.
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
The PrintSettingsViewModel ' s MergeAndValidatePrintTicket method might throw PrintQueueExceptions. Catch them and provide info to the users somehow, for example args in the PreviewPrint event.
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>
At the moment the ItemSnaping works only with the outer bounds but it should also snap to the centers.
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.
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?
Create example with data base tables that visualizes self referencing business objects.
Create modifyable orthogonal connections like the ones in Visio.
Implement "Item to Item Snapping" during item resize operation.
Users need a way to control the way SettingsPane is positioned.
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.
Add ContainerShape ContentTemplate and ContentTemplateSelector properties in RadDiagram
Currently there is no straightforward way to notify that a point is added/removed from the ConnectionPoints collection of the RadDiagramConnection.
PathTool: Possibility to edit the shape path via edit points like the Pen Tool in Blend.