To reproduce: - Add DiagramRibbonBar to a user control. - Try setting the AssociatedControl from the smart tag. - An error message will be shown. Workaround: Set it in code: radDiagramRibbonBar1.AssociatedDiagram = radDiagram1;
How to reproduce: check the attached video - unexpected-behavior.gif
To reproduce: Bind using a binding source: DataSet ds = new DataSet(); ds.Tables.Add(shapesTable); ds.Tables.Add(connectionsTable); BindingSource bindingSource1 = new BindingSource { DataSource = ds }; radDiagram1.DiagramElement.DataLayer.DataSource = bindingSource1; Workaround: Bind directly: DataSet ds = new DataSet(); ds.Tables.Add(shapesTable); ds.Tables.Add(connectionsTable); radDiagram1.DiagramElement.DataLayer.DataSource = ds;
To reproduce - Click between the thumb and the button. Workaround: public class MyDiagramInputBehavior : DiagramInputBehavior { public MyDiagramInputBehavior(RadDiagramElement element) : base(element) { } protected override bool IsScrollBar(RadElement element) { if (element != null && element is RadScrollBarElement) { return true; } return base.IsScrollBar(element); } }
To reproduce: public Form1() { InitializeComponent(); this.radDiagram1.SelectionMode = Telerik.Windows.Diagrams.Core.SelectionMode.None; PopulateWithData(); } private void PopulateWithData() { DataTable tasksTable = new DataTable("Tasks"); tasksTable.Columns.Add("Id"); tasksTable.Columns.Add("Text"); tasksTable.Columns.Add("Type"); tasksTable.Columns.Add("X"); tasksTable.Columns.Add("Y"); tasksTable.Columns.Add("Width"); tasksTable.Columns.Add("Height"); tasksTable.Rows.Add("Task1", "Task 1", "circle", 100, 300, 50, 50); tasksTable.Rows.Add("Task2", "Task 2", "rectangle", 200, 100, 100, 100); tasksTable.Rows.Add("Task3", "Task 3", "circle", 300, 300, 50, 50); tasksTable.Rows.Add("Task4", "Task 4", "rectangle", 400, 100, 100, 100); tasksTable.Rows.Add("Task5", "Task 5", "circle", 500, 300, 50, 50); DataTable relationsTable = new DataTable("Relations"); relationsTable.Columns.Add("SourceTaskId"); relationsTable.Columns.Add("SourceConnector"); relationsTable.Columns.Add("TargetTaskId"); relationsTable.Columns.Add("TargetConnector"); relationsTable.Columns.Add("StartCapField"); relationsTable.Columns.Add("EndCapField"); relationsTable.Rows.Add("Task2", "Left", "Task1", "Auto", "Arrow5Filled", "Arrow1"); relationsTable.Rows.Add("Task2", "Auto", "Task3", "Auto", "Arrow4Filled", "Arrow1Filled"); relationsTable.Rows.Add("Task4", "Auto", "Task5", "Auto", "Arrow2Filled", "Arrow2"); DataSet ds = new DataSet(); ds.Tables.Add(tasksTable); ds.Tables.Add(relationsTable); this.radDiagram1.DataSource = ds; this.radDiagram1.ConnectionDataMember = "Relations"; this.radDiagram1.ShapeDataMember = "Tasks"; this.radDiagram1.ShapeIdMember = "Id"; this.radDiagram1.ShapeTextMember = "Text"; this.radDiagram1.ShapeTypeMember = "Type"; this.radDiagram1.ShapeXMember = "X"; this.radDiagram1.ShapeYMember = "Y"; this.radDiagram1.ShapeWidthMember = "Width"; this.radDiagram1.ShapeHeightMember = "Height"; this.radDiagram1.ConnectionSourceShapeIdMember = "SourceTaskId"; this.radDiagram1.ConnectionTargetShapeIdMember = "TargetTaskId"; this.radDiagram1.ConnectionSourceCapTypeMember = "StartCapField"; this.radDiagram1.ConnectionTargetCapTypeMember = "EndCapField"; this.radDiagram1.ConnectionSourceConnectorMember = "SourceConnector"; this.radDiagram1.ConnectionTargetConnectorMember = "TargetConnector"; } Workaround: after rebinding, clear the selection and set the SelectionMode to None: PopulateWithData(); this.radDiagram1.SelectedItem = null; this.radDiagram1.SelectionMode = Telerik.Windows.Diagrams.Core.SelectionMode.None;
To reproduce: - Add shape to the diagram. - Select the shape. - Press and hold Ctrl, then press one of the arrow keys. - The shape is not moved. Workaround: private void RadDiagram1_KeyDown(object sender, KeyEventArgs e) { // Ctrl should be pressed as well. if (e.KeyCode == Keys.Left) { var shape = radDiagram1.SelectedItem as RadDiagramShape; if (shape != null) { shape.Position = new Telerik.Windows.Diagrams.Core.Point(shape.Position.X - 10, shape.Position.Y); } } }
To reproduce: radDiagram1.SelectedItem = radDiagram1.Shapes[2]; Workaround: radDiagram1.Shapes[2].IsSelected = true;
Note: this behavior may be applied to all other relevant manipulation properties To reproduce: this.radDiagram1.IsDraggingEnabled = true; RadDiagramShape shape1 = new RadDiagramShape(); shape1.Text = "Shape1"; shape1.BackColor = Color.Red; shape1.IsDraggingEnabled = false; shape1.ElementShape = new RoundRectShape(5); this.radDiagram1.Items.Add(shape1); As a result you will be able to drag the shape which is not correct. Workaround: set the RadDiagramShape.IsDraggingEnabled after the shape is added to the diagram: this.radDiagram1.IsDraggingEnabled = true; RadDiagramShape shape1 = new RadDiagramShape(); shape1.Text = "Shape1"; shape1.BackColor = Color.Red; shape1.ElementShape = new RoundRectShape(5); this.radDiagram1.Items.Add(shape1); shape1.IsDraggingEnabled = false;
Please refer to the attached gif file. Workaround: cancel the PreviewPan event and adjust manually the Telerik.WinControls.UI.Diagrams.Panel.PositionOffset. Here is demonstrated a sample approach: int widthOffset = -1000; int heightOffset = -1000; private void radDiagram_PreviewPan(object sender, Telerik.WinControls.UI.Diagrams.PositionChangedRoutedEventArgs e) { Telerik.WinControls.UI.Diagrams.Panel panel = this.radDiagram.DiagramElement.Children.First() as Telerik.WinControls.UI.Diagrams.Panel; Telerik.WinControls.UI.Diagrams.Panel hitTestablePanel = panel.Children.First() as Telerik.WinControls.UI.Diagrams.Panel; e.Cancel = true; if (panel != null) { hitTestablePanel.PositionOffset = new SizeF(widthOffset,heightOffset); widthOffset += 50; } }
To reproduce: 1. Add RadDiagram with 10 shapes and connection between them 2. Set the Layout to be Tree 3. The vertical scrollbar is not layout to the end of diagram, there is a gap.
http://docs.telerik.com/devtools/wpf/controls/raddiagram/extensions/thumbnail