To reproduce: Scenario 1: ToolWindow window1 = new ToolWindow(); window1.Name = "window1"; this.radDock1.DockWindow(window1, DockPosition.Left); ToolWindow window2 = new ToolWindow(); window2.Name = "window2"; this.radDock1.DockWindow(window2, window1, DockPosition.Right); window1.TabStrip.SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Relative; window1.TabStrip.SizeInfo.RelativeRatio = new SizeF(0.7f, 0); The expected result is that "window1" takes 70% of the container hosting "window1" and "window2". Scenario 2: ToolWindow window1 = new ToolWindow(); window1.Name = "window1"; this.radDock1.DockWindow(window1, DockPosition.Left); DocumentWindow doc1 = new DocumentWindow(); this.radDock1.AddDocument(doc1, window1, DockPosition.Right); window1.TabStrip.SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Relative; window1.TabStrip.SizeInfo.RelativeRatio = new SizeF(0.7f, 0); The expected result is that "window1" takes 70% of the container hosting "window1" and the document window. Workaround: use the SplitPanelSizeMode.Absolute as below: ToolWindow window1 = new ToolWindow(); DocumentWindow doc1 = new DocumentWindow(); private void RadForm1_Load(object sender, EventArgs e) { window1.Name = "window1"; this.radDock1.DockWindow(window1, DockPosition.Left); this.radDock1.AddDocument(doc1, window1, DockPosition.Right); window1.TabStrip.SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Absolute; window1.TabStrip.SizeInfo.AbsoluteSize = new Size((int)(this.Size.Width * 0.7),0); this.radDock1.SizeChanged += radDock1_SizeChanged; } private void radDock1_SizeChanged(object sender, EventArgs e) { window1.TabStrip.SizeInfo.AbsoluteSize = new Size((int)(this.Size.Width * 0.7),0); }
To reproduce: - Load a layout with a floating window in it. - The close button is disabled. Workaround: private void RadDock1_LoadedFromXml(object sender, EventArgs e) { foreach (FloatingWindow item in radDock1.FloatingWindows) { item.UpdateCloseButton(); } }
To reproduce: - Add three panels to a document window, add some controls to the panels as well. - Dock the panels to Top, Bottom and Fill. - Restart Visual Studio and reopen the designer.
Use the attached project to reproduce. Workaround: private void RadForm1_SizeChanged(object sender, EventArgs e) { toolWindow1.EnsureVisible(); }
Workaround: FloatingWindow.FormElement.TitleBar.CloseButton.Enabled = True
Description: Add two MDI child forms. Activate one of the forms and focus the second textbox. After that select the second form. Then return to the first form and you will see that the textbox is not focused. The issue is observed only with Visual Basic.
To reproduce: - Add a panel to a form, dock it to fill the entire space. - Add RadDock to it, set its Dock property to fill. - Add a document window with a grid to it (the grid should fill the entire space). - Start the application and maximize the form. Workaround: - Remove the panel or use RadPanel instead. - Handle the SizeChanged event private void RadForm1_SizeChanged(object sender, EventArgs e) { var window = this.radDock1.ActiveWindow; this.radDock1.ActiveWindow = null; this.radDock1.ActiveWindow = window; }
Please refer to the attached sample project and follow the steps illustrated on the gif file. Workaround: you can control which items to be closed: public RadForm1() { InitializeComponent(); ContextMenuService menuService = this.radDock1.GetService<ContextMenuService>(); menuService.ContextMenuDisplaying += menuService_ContextMenuDisplaying; } RadDockLocalizationProvider localizationProvider = RadDockLocalizationProvider.CurrentProvider; private void menuService_ContextMenuDisplaying(object sender, ContextMenuDisplayingEventArgs e) { foreach (RadItem item in e.MenuItems) { if (item.Text == localizationProvider.GetLocalizedString(RadDockStringId.ContextMenuCloseAll)) { item.Click += item_ClickContextMenuCloseAll; } else if (item.Text == localizationProvider.GetLocalizedString(RadDockStringId.ContextMenuCloseAllButThis)) { item.Click += item_ClickContextMenuCloseAllButThis; } } } private void item_ClickContextMenuCloseAllButThis(object sender, EventArgs e) { foreach (DockWindow dw in this.radDock1.DockWindows) { if (dw == this.radDock1.ActiveWindow) { continue; } dw.CloseAction = DockWindowCloseAction.Hide; dw.Close(); } } private void item_ClickContextMenuCloseAll(object sender, EventArgs e) { foreach (DockWindow dw in this.radDock1.DockWindows) { dw.CloseAction = DockWindowCloseAction.Hide; dw.Close(); } }
This request concerns adding a state for the buttons in the ToolWindow caption, which will allow different theming for the buttons, when the window is active and inactive.
To reproduce: - Add a tool window to RadDock - Make the tool window floating and double-click its title bar. - Click the maximaze button.
To reproduce: - Add a form with two auto-hidden windows - one on the left and one on the right. - Drag one of the windows by just showing it (do not pin it) - The floating window will contain both tool windows, instead of just the dragged one. Workaround: Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load RadDock1.DockWindow(ToolWindow2, DockPosition.Right) RadDock1.AutoHideWindows(New DockWindow() {ToolWindow2}, AutoHidePosition.Right) ToolWindow2.Tag = DockPosition.Right RadDock1.AutoHideWindow(ToolWindow1) ToolWindow1.Tag = DockPosition.Left End Sub Private Sub RadDock1_FloatingWindowCreated(sender As Object, e As FloatingWindowEventArgs) Handles RadDock1.FloatingWindowCreated For Each dw As DockWindow In CType(sender, RadDock).DockWindows If dw.Handle <> CType(sender, RadDock).ActiveWindow.Handle Then dw.DockState = dw.PreviousDockState RadDock1.AutoHideWindows(New DockWindow() {dw}, dw.Tag) End If Next End Sub
To reproduce: - Add two tool windows and auto hide them, one on the left and on the right - Then call the AutoHideWindow method like this (ToolWindow1 should be on left side): RadDock1.AutoHideWindow(ToolWindow1) - You will notice that the second windows is moved on the left. Workaround: Use the DockState property instead of the method.
To reproduce: - Add several dock windows and hide some of them. - Save the layout. - Load the layout, the windows are not hidden Workaround: string strLayout = File.ReadAllText(@"..\..\layout.xml"); foreach (DocumentWindow dw in radDock1.DockWindows.DocumentWindows) { if (strLayout.IndexOf("DesiredDockState=\"Hidden\" Name=\"" + dw.Name + "\"") != -1 && dw.DockState != DockState.Hidden) { dw.DockState = DockState.Hidden; } }
To reproduce: - Add a document window uppopn a button click. Put the button inside a tool window. Workaround: Use ActiveWindowChanged event.
Steps to reproduce: 1. Open the form at design time 2. Add a RadDock 3. Add a MS Panel 4. Put the RadDock inside the panel 5. Dock the Panel to Fill, dock RadDock to Fill as well. 6. Open RadDock's Advanced Layout Designer 7. Add two ToolWindows to the left and redock them in order to share one common container. 8. Hide the ToolWindows by unchecking the check-boxes in the Advanced Layout Designer and save the changes 9. Add a RadPanel (Dock=Fill) to the active ToolWindow. 10. Add a RadGridView (Anchor = Top, Left, Right, Bottom ), a left RadButton (Anchor = Bottom, Left) and a right RadButton (Anchor = Bottom, Right)to the panel. 11. Save thfs in the designer. Select the RadPanel with the grid and the buttons and click Copy. 12. Select the other ToolWindow and paste. 13. Save the form. Close the designer and reopen it again. You will notice that the pasted panel is not as expected. The attached video (drag and drop over the browser to play it) illustrates better the performed steps. Workaround: do not place the RadDock inside a MS Panel. RadDock is supposed to be used as a main container in a form.
To reproduce: radDock1.ElementTree.EnableApplicationThemeName = false; radDock1.ThemeName = "TelerikMetroBlue"; ThemeResolutionService.ApplicationThemeName = "Office2013Light"; Workaround: ThemeResolutionService.ApplyThemeToControlTree(this,"Office2013Light"); radDock1.ThemeName = "TelerikMetroBlue";
Workaround: For Each dw As DocumentWindow In Me.RadDock1.DockWindows.DocumentWindows dw.TabStripItem.PositionOffset = New Size(1, 0) Next
To reproduce: Sub New() InitializeComponent() Me.WindowState = FormWindowState.Maximized Dim leftWindow As ToolWindow = New ToolWindow() leftWindow.Text = "Left Window" Me.RadDock1.DockWindow(leftWindow, DockPosition.Left) leftWindow.DockState = DockState.AutoHide End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load If Me.RadDock1.DockWindows.ToolWindows.First().ParentForm IsNot Nothing Then Me.RadDock1.DockWindows.ToolWindows.First().ParentForm.Show() End If End Sub Workaround: maximize the form after the auto-hide popup is shown: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load If Me.RadDock1.DockWindows.ToolWindows.First().ParentForm IsNot Nothing Then Me.RadDock1.DockWindows.ToolWindows.First().ParentForm.Show() End If Me.WindowState = FormWindowState.Maximized End Sub
To reproduce: - Add three charts to a RadLayoutControl (the should have an equal size). - In the form's constructor add the layout control to a document window. - Resize the form, the third chart has a different size. Workaround: Use the OnShown event to add the control.
To reproduce: - Add several tool windows to RadDock. - Make a window floating and then dock it back. - Hide all windows and then save the layout. - Close the application. - Start the application and load the saved layout. - Show all windows again.