Completed
Last Updated: 23 Jul 2010 10:08 by ADMIN
ADMIN
Created by: Stefan
Comments: 0
Category: Dock
Type: Bug Report
1
The AutoHide and Docking button of the toolWindows does not have a localization strings. Same with the document window.
Completed
Last Updated: 26 Mar 2013 08:52 by ADMIN
To reproduce: 
using System.Windows.Forms;
using Telerik.WinControls.UI.Docking;

namespace Lab.Dock
{
    public partial class DockMDIForm : MainForm
    {
        private RadDock radDock = new RadDock();

        public DockMDIForm()
        {
          
Unplanned
Last Updated: 01 May 2024 09:57 by ADMIN
In this case, we have 5 MDI children and the last one is active. Closing the first one from the tab close button will activate the second child. Closing a non-active child should not change the active window in MDI scenario.
Completed
Last Updated: 21 Sep 2022 12:57 by ADMIN
Release R3 2022 SP1
Please run the sample project and try to move some of windows. You will notice that the drag operation is freezes. The two gif files illustrates the current and previous behavior.
Completed
Last Updated: 29 Dec 2011 05:06 by ADMIN
Steps to reproduce:
1. Add a new form to a project and set MdiContainer to true
2. Drag a RadDock onto the form and set the AutoDetectMdiChildren to true
3. Add another form to be used as MdiChild
4. Drag a button onto the second form and in the Click event handler add call to this.Close()
5. Run the project and add an MdiChild form to the MdiContainer form.
6. Press the button on the child form. You will see an exception.
Completed
Last Updated: 27 Mar 2023 06:39 by ADMIN
Release R1 2023 SP1

When closing the MDI child, its FormClosing event is called twice. This is not observed if we close its HostWindow first.

 

Completed
Last Updated: 24 Mar 2011 11:40 by ADMIN
ADMIN
Created by: Ivan Petrov
Comments: 0
Category: Dock
Type: Bug Report
1
changes
---------------------------------
event is changed to ItemSelecting - tabstrip now is pageview (documentTabStrip1.TabStripElement.ItemSelecting += new EventHandler<Telerik.WinControls.UI.RadPageViewItemSelectingEventArgs>(TabStripElement_ItemSelecting))
introduce new powefull events for RadDock - SelectedTabChanging / SelectedTabChanged


Create a dock with couple of documents.
Subscribe to the TabSelecting event of RadTabStripElement and cancel it showing a message box indicating the cancellation.
The message box will be shown 5 times.
Completed
Last Updated: 06 Feb 2015 09:47 by ADMIN
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. 
Completed
Last Updated: 15 Jan 2015 17:27 by ADMIN
To reproduce:
Add a RadDock and a DockWindow, AutoHide it, add a RadPropertyGrid to its controls and dock it. Set the SelectedObject of the property grid to the current form and start the application. Edit the BackColor value and you will notice that the window will hide.
Completed
Last Updated: 01 Jul 2014 09:44 by ADMIN
To reproduce:

Add RadDock and ToolWindow to the RadDock and dock it. Start the application and drag out the ToolWindow. You will notice that when you try to drag it back in the RadDock you are not able to.
Completed
Last Updated: 01 Jul 2014 08:20 by ADMIN
To reproduce:

Add a RadDock to a Form, add two ToolWindows and dock them. Drag out one of the toolwindows to the edge of the other one until the drag hint is selected and continue dragging out of the form. You will notice that the drag hint is still selected.
Completed
Last Updated: 01 Jul 2014 09:37 by Kurt
To reproduce:

Add a RadDock and two ToolWindows with many controls inside (~100). Drag out the one toolwindow and dock it back by dragging. Now drag it out again and dock it by clicking in its title bar and clicking Docked. You will notice that the second way is faster.
Completed
Last Updated: 20 Jun 2014 15:00 by ADMIN
To reproduce:
1.Add a RadDock with a ToolWindow and a DocumentWindow. Add several controls to all windows. Use the following code:


protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    if (System.IO.File.Exists(@"..\..\..\layoutTest.xml"))
        this.radDock1.LoadFromXml(@"..\..\..\layoutTest.xml");
}


protected override void OnClosing(CancelEventArgs e)
{
    this.radDock1.SaveToXml(@"..\..\..\layoutTest.xml");
    base.OnClosing(e);
}


2. Run the application and change the current layout. 
3. Close the form and run the application again. The controls which belong to the RadDock's DocumentWindow disappear from the dialog.

Workaround:
class MyDock : RadDock
{
    protected override void LoadFromXmlCore(System.Xml.XmlReader reader, bool oldXmlFormat)
    {
        //stop the base logic
        //base.LoadFromXmlCore(reader, oldXmlFormat);
 
        if (reader == null)
        {
            return;
        }
 
        this.ActiveWindow = null;
 
        FieldInfo prevActiveWindow = typeof(RadDock).GetField("prevActiveWindow", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);
        prevActiveWindow.SetValue(this, null); //this.prevActiveWindow = null;
 
        FieldInfo attachedWindows = typeof(RadDock).GetField("attachedWindows", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
        SortedList<string, DockWindow> _attachedWindows = attachedWindows.GetValue(this) as SortedList<string, DockWindow>;
        MethodInfo CleanAutoHideTabs = typeof(RadDock).GetMethod("CleanAutoHideTabs", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        CleanAutoHideTabs.Invoke(this, new object[] { _attachedWindows.Values, true }); //this.CleanAutoHideTabs(this.attachedWindows.Values, true);
 
        MethodInfo ResetDesiredDockState = typeof(RadDock).GetMethod("ResetDesiredDockState", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        ResetDesiredDockState.Invoke(this, null); //this.ResetDesiredDockState();
 
        MethodInfo OnLoadingFromXML = this.DocumentManager.GetType().GetMethod("OnLoadingFromXML", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        OnLoadingFromXML.Invoke(this.DocumentManager, null); //this.DocumentManager.OnLoadingFromXML();
 
        if (oldXmlFormat)
        {
            this.BeginTransactionBlock(false);
 
            MethodInfo LoadFromOldXml = typeof(RadDock).GetMethod("LoadFromOldXml", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
            LoadFromOldXml.Invoke(this, new object[] {reader}); // this.LoadFromOldXml(reader);
 
            this.EndTransactionBlock();
        }
        else
        {
            MethodInfo LoadFromNewXml = typeof(RadDock).GetMethod("LoadFromNewXml", System.Reflection.BindingFlags.NonPublic |  BindingFlags.Instance);
            LoadFromNewXml.Invoke(this, new object[] { reader }); // this.LoadFromNewXml(reader);
        }
 
        this.EnsureInitialized();
        this.OnLoadedFromXml();
    }
 
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadDock).FullName;
        }
    }
}
Declined
Last Updated: 02 May 2014 08:14 by ADMIN
To reproduce:
- Add RadDock to a blank form and dock a tool window to the bottom.
- Add RadRichTextBox to the tool window and set its anchor property to all for sides.
- Save and close the form.
- Reopen the form, you will notice that the RadRichtextBox has different size.

Completed
Last Updated: 15 Jan 2015 17:55 by ADMIN
To reproduce:

Add a few ToolWindows to RadDock and start the application. Drag one window out of the form and dock the others inside of it. Dock the window back to the RadDock. You will notice that only the current window will be docked leaving the rest of the windows floating. The correct behavior is the whole window with its child windows to be docked.

Workaround:

Subscribe to the DockStateChanging and DockStateChanged events and manually add the windows.

private IEnumerable<DockWindow> windows;
void RadDock_DockStateChanging(object sender, DockStateChangingEventArgs e)
{
    if (e.NewWindow.FloatingParent == null)
    {
        this.windows = Enumerable.Empty<DockWindow>();
        return;
    }


    this.windows = DockHelper.GetDockWindows(e.NewWindow.FloatingParent, true, this.RadDock).Where(x => x != e.NewWindow);
}


void RadDock_DockStateChanged(object sender, DockWindowEventArgs e)
{
    foreach (DockWindow window in windows)
    {
        this.RadDock.DockWindow(window, e.DockWindow.DockTabStrip, DockPosition.Fill);
    }
}
Completed
Last Updated: 19 May 2022 14:24 by ADMIN
Release R2 2022 SP1
When saving and loading the RadDock layout from XML, the position of the tab is not preserved correctly.
Completed
Last Updated: 07 Nov 2019 14:11 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

If you apply one theme to the entire application and want to apply another theme for RadDock as it is demonstrated in this help article, the ThemeName property of RadDock is not respected:

             

        public RadForm1()
        {
            InitializeComponent();

            radDock1.ElementTree.EnableApplicationThemeName = false;
            radDock1.ThemeName = "FluentDark"; 
            ThemeResolutionService.ApplicationThemeName = "Windows7"; 
        }

 

Completed
Last Updated: 20 Oct 2014 14:29 by ADMIN
To reproduce:

Use the following methods which adds host windows to ToolTabStrip and set the ShowItemCloseButton:

private void AddDocumentStrip()
{
    // Create and add a document strip to the dock.
    this.documentstrip = new ToolTabStrip();
    this.documentstrip.TabStripAlignment = TabStripAlignment.Top;
    this.documentstrip.CaptionVisible = false;
    this.documentstrip.ActionMenuButton.Visibility = ElementVisibility.Hidden;
    this.DocumentDock.Controls.Add(documentstrip);
    this.DocumentDock.ShowToolCloseButton = true;
}

private void radCommandBar1_Click(object sender, EventArgs e)
{
    RadForm testdoc = new RadForm();

    // Create a hostwindow to hold the document (so can interact with the dock)
    HostWindow hostwindow = new HostWindow();
    hostwindow.Text = "Document " + DocumentDock.DockWindows.Count.ToString();
    hostwindow.ToolCaptionButtons = ToolStripCaptionButtons.Close;

    // Load the document into the host window
    hostwindow.LoadContent(testdoc);

    // Set the floating size when it is undocked
    Size size = new Size(660, 440);
    hostwindow.DefaultFloatingSize = size;

    // Make sure a closed document releases its resources
    hostwindow.CloseAction = DockWindowCloseAction.CloseAndDispose;

    // Check if we are opening our first document, requires additional setup
    //if (currentdocuments.Count == 0)
    if (DocumentDock.ActiveWindow == null)
    {
        if (this.DocumentDock.Controls.Count < 2)
        {
            this.documentstrip.Controls.Add(hostwindow);
            this.documentstrip.CaptionVisible = true;
            this.DocumentDock.Controls.Add(documentstrip);
            this.DocumentDock.ShowToolCloseButton = true;
        }
        else
        {
            ((ToolTabStrip)this.DocumentDock.Controls[1]).Controls.Add(hostwindow);
            ((ToolTabStrip)this.DocumentDock.Controls[1]).CaptionVisible = true;
            this.DocumentDock.ShowToolCloseButton = true;
        }
    }
    else
    {
        documentstrip.Controls.Add(hostwindow);
        documentstrip.Show();
    }
    this.documentstrip.Text = "Document " + DocumentDock.DockWindows.Count.ToString();

    //Bring Analyzer to the front
    this.Activate();
}


Click the button a few times, close all windows and click again. You will notice that the close button will not be visible in the new windows.

Alternatively, you can download the sample project.

Workaround:

Manually set the ShowItemCloseButton property to each child ToolTabStrip:

private void AddDocumentStrip()
{
    // Create and add a document strip to the dock.
    this.documentstrip = new ToolTabStrip();
    this.documentstrip.TabStripAlignment = TabStripAlignment.Top;
    this.documentstrip.CaptionVisible = false;
    this.documentstrip.ActionMenuButton.Visibility = ElementVisibility.Hidden;
    this.DocumentDock.Controls.Add(documentstrip);
    this.DocumentDock.ShowToolCloseButton = true;
}

private void radCommandBar1_Click(object sender, EventArgs e)
{
    RadForm testdoc = new RadForm();

    // Create a hostwindow to hold the document (so can interact with the dock)
    HostWindow hostwindow = new HostWindow();
    hostwindow.Text = "Document " + DocumentDock.DockWindows.Count.ToString();
    hostwindow.ToolCaptionButtons = ToolStripCaptionButtons.Close;

    // Load the document into the host window
    hostwindow.LoadContent(testdoc);

    // Set the floating size when it is undocked
    Size size = new Size(660, 440);
    hostwindow.DefaultFloatingSize = size;

    // Make sure a closed document releases its resources
    hostwindow.CloseAction = DockWindowCloseAction.CloseAndDispose;

    // Check if we are opening our first document, requires additional setup
    //if (currentdocuments.Count == 0)
    if (DocumentDock.ActiveWindow == null)
    {
        if (this.DocumentDock.Controls.Count < 2)
        {
            this.documentstrip.Controls.Add(hostwindow);
            this.documentstrip.CaptionVisible = true;
            this.DocumentDock.Controls.Add(documentstrip);
            this.DocumentDock.ShowToolCloseButton = true;
        }
        else
        {
            ((ToolTabStrip)this.DocumentDock.Controls[1]).Controls.Add(hostwindow);
            ((ToolTabStrip)this.DocumentDock.Controls[1]).CaptionVisible = true;
            foreach (ToolTabStrip strip in this.DocumentDock.EnumFrameworkControls<ToolTabStrip>())
            {
                strip.ShowItemCloseButton = true;
            }
        }
    }
    else
    {
        documentstrip.Controls.Add(hostwindow);
        documentstrip.Show();
    }
    this.documentstrip.Text = "Document " + DocumentDock.DockWindows.Count.ToString();

    //Bring Analyzer to the front
    this.Activate();
}
Completed
Last Updated: 10 Nov 2014 09:00 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Dock
Type: Bug Report
1
To reproduce:
Use the BugTracker project from the {IntallationFolder}\Examples\BugTracker
1. Change the CloseAction for all DocumentWindows to "Hide".
2. Run the application.
3. Close tab "Bugs"
4. Save the layout, pressing the "Save" button ribbon tab "view"
5. Load the layout.
 You will notice that the "Bugs" tab is visible but in a invalid state.

Workaround: use  DocumentWindow.CloseAction = Close or call  DocumentWindow.Show method before loading the layout.
Completed
Last Updated: 02 May 2019 16:07 by ADMIN
Release R2 2019

1. Add 4 ToolWindows - left, top, right, bottom. 

2. Add one DocumentWindow at the center.

3. In the Load event set the MainDocumentContainerVisible property to false. 

Please refer to the attached sample gif files. Even though the document container is not shown, the docking guides for the tabbed document are visible.