A nice addition to the existing RadDock implementation for re-docking floating windows will be the ability to re-dock floating windows to documents if the previous state of the floating window was a document window.
To reproduce: Create MDI form using RadDock by following the article: http://www.telerik.com/help/winforms/dock-mdi-mode-automatic-mdi-form-handling.html You will notice that the Closing and Closed events of the MdiForms will not be invoked. Workaround: Subscribe to the FormClosing event of the main Form and close all the windows manually: void Form1_FormClosing(object sender, FormClosingEventArgs e) { this.RadDock.CloseAllWindows(); }
I have issues with Databindings for RadToggleButton and RadDock ToolWindow. Here are 3 scenarios to try with my repro application. ToggleButton Click the radToggleButtonElement1, notice that the binding never occurs. ToolWindow Docking issue 1 Dock the toolWindow1 to the left over ToolWindow2 Click toolWindow2 Click toolWindow1 Click toolWindow2 Notice each time you click another tool window, the binding is triggered even if the property value hasn't changed. ToolWindow Dockin issue 2 Dock the toolWindow1 to the left over toolWindow2 Notice that the binding is triggered, but with the previous value (Floating instead of Docked) close the toolWindow1 Notice that the binding is triggered, but with the previous value (Docked instead of Hidden)
Steps to reproduce: 1. Add a RadDock to a form 2. Add a document window 3. Add a button to the form and upon click add a user control to the document with Dock set to FIll 4. Run the project and click the button. 5. You will notice that the user control will not fill the parent container properly.
If there is a RadDock in UserControl and second UserControl, which inherits the first one, then the RadDock€™s layout in the second UC is damaged in design and run-time.
A user should be able to scroll to a desired item (window) by selecting it from the overflow menu. Currently, the selected item is inserted at the first position and the order of items is changed.
If you have several textboxes anchored to Left, Top, Right in a Form hosted in RadDock and you redock the window so that its width remains the same, the width of the textboxes will change.
DECLINED: Currently, RadDock is designed to only persist the position of tool windows. The document windows are consider to be kind of dynamic content presenters which need to be opened/closed at runtime. ORIGINAL DESCRIPTION: Create a single ToolWindow, set its DockState to Floating, add this window to a RadDock. Start the application, hide the window, save the layout, then load the layout, the window is not hidden. In the xml there is no node with ToolWindow To reproduce: public partial class Form1 : Form { public Form1() { InitializeComponent(); ToolWindow newTool = new ToolWindow(); newTool.Name = "New Tool"; newTool.CloseAction = DockWindowCloseAction.Hide; this.radDock1.AddDocument(newTool); newTool.DockState = DockState.Floating; this.radDock1.ActiveWindow = newTool; } private void radButton1_Click(object sender, EventArgs e) { this.radDock1.SaveToXml(@"..\..\layout1.xml"); } private void radButton2_Click(object sender, EventArgs e) { this.radDock1.LoadFromXml(@"..\..\layout1.xml"); } }
Currently it is not possible to customize the tool window animation and there is no animation when closing the tool window. Resolution: Set the AutoHideAnimation and the AutoHideAnimationDuration properties of RadDock
Here is a sample application that has the problem. It appears that the issue is easy to reproduce by changing something via the designer in frmMain (like slightly resizing the large close button larger or smaller. Or adding a label or something else in the same DocumentWindow area around the large Close button). Here is another issue that might be related with the Designer error I'm pointing out. Using my example Test project, If you add another "Tabbed Document" to the RadDock and then launch the application and go back to the designer and select a tab that is not currently selected in the designer. You will see the errors in the attached screen shots. This causes you to have to close out the designer window and reopen to clear the error.
It is caused when you open the solution for the first time, open the FrmUmre in design time, change the active window in RadDock and run the application. The error states: "The control Telerik.WinControls.UI.Docking.DocumentTabStrip has thrown an unhanded exception in the designer and has been disabled"
The issue is reproduced when the Theme service of Windows is stopped and classic windows desktop is used
We have a somewhat complicated application in which we have a RadDock inside another RadDock. Everything seems to work just fine, with one exception. When we resize the application window itself, the ToolWindow and DocumentWindow controls don't properly redraw their areas..
There should be a method which allows the user to host a Form in a HostWindow. This will come in handy when there is a save/load layout scenario. Resolution: Use the DockControl method to host a form. Here is the code snippet: Form form = new Form8(); this.radDock1.DockControl(form, Telerik.WinControls.UI.Docking.DockPosition.Left);
RadDock should have ActiveMDIChild property which returns the currently activated mdi child. Resolution: Use the ActiveMDIChild property of the parent form.
FIX. RadDock - with two nested docks, setting the DocumentTabsAlignment of the other dock automatically sets the same on the inner one and this cannot be changed. Once you change it and reload the design time, its setting is being reset. To reproduce - add RadDock with couple DocumenWindows in it - add second RadDock with coupld DocumentWindows in it, in one of the windows of the first dock - set Raddock2 DoumentTabsAlignment to top - set DocumentTabStrip2 TabStripAlignment also to top or default - drag a radbutton into documentwindow3 and double click it, to get a click event - go into code view and remove the created event manually - change back to form view. the alignment in DocumentTabStrip2 has been automatically changed to bottom
To reproduce: Have a RadDock with a docked ToolWindow. Undock the ToolWindow by double-clicking it and dock it back. Now undock it by dragging it. If you now check the FloatingWindows collection you will see that there are two windows with the same name. Workaround: When iterating the windows, skip duplicates: HashSet<string> iteratedWindows = new HashSet<string>(); foreach (FloatingWindow win in this.radDock1.FloatingWindows) { if (iteratedWindows.Contains(win.Text)) { return; } win.Visible = hide; iteratedWindows.Add(win.Text); } Resolution: The FloatingWindows property gets a list of the floating windows, can contain duplicates, empty or hidden toolwindows which are used internally as re-dock targets. Use the ActiveFloatingWindows property instead of it.
To reproduce: case #1 Dock a window to RadDock. Drag a window out of the Dock to make it floating. Check the FloatingWindowsCollection. Dock the window again, you will notice that the collection did not change. case #2 Have a RadDock with a docked ToolWindow. Undock the ToolWindow by double-clicking it and dock it back. Now undock it by dragging it. If you now check the FloatingWindows collection you will see that there are two windows with the same name. Resolution: The FloatingWindows property gets a list of the floating windows. Can contain duplicates, empty or hidden toolwindows which are used internally as re-dock targets. Use the ActiveFloatingWindows property instead of it.
Workaround: void radDock1_DockWindowAdded(object sender, DockWindowEventArgs e) { DocumentWindow docWin = e.DockWindow as DocumentWindow; if (docWin != null && docWin.Text.Contains(Environment.NewLine)) { docWin.TabStripItem.Padding = new Padding(25, 2, 3, 2); } }